Qt Jpeg 파일 저장에 대해서 질문 드립니다.

kjh27814의 이미지

안녕하세요.

개발 도중 이상한 상황이 생겨 질문 올립니다.

현재 화면의 영역을 jpeg파일로 저장하는 간단한 프로그램을 작성하였는데

그냥 Qt Creator에서 런타임으로 돌리면 jpeg파일이 잘 저장됩니다.

그런데 그냥 빌드된 파일을 실행시키면 jpeg 파일이 저장이 되지 않습니다.

검색을 해보니 jpeg관련 라이브러리를 같이 포함시켜줘야 한다고 해서

같은 폴더 밑에 뒀습니다.

예를 들어 바탕화면에 실행파일이 있다고 치면

jpeg 라이브러리(컴파일러가 있는 폴더의 plugins폴더 내부에 있는 라이브러리)를 바탕화면/imageformats 폴더 내부에 넣어둔 뒤

실행해도 동일하게 저장이 되지 않습니다.

라이브러리 path를 설정해주라는 얘기도 있어서

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.addLibraryPath(QDir::currentPath() + "/imageformats");
    a.addLibraryPath(QDir::currentPath() + "/plugins");
 
    MainWindow w;
    w.show();
    qDebug() << a.libraryPaths();
 
    return a.exec();
}

이렇게 코딩해봤습니다만 이것도 역시 마찬가지..

QImageWriter의 supportedImageFormats()함수로 출력해보니 런타임에서는 jpg와 jpeg가 뜨는데 빌드 된 파일로 직접 실행시켰을때는 뜨지 않습니다.

아무리 검색해봐도 제가 시도한 방법 외에는 다른 해결 방법이 보이지 않습니다.

여러분들의 의견 부탁드립니다.

감사합니다.

/// 추가
환경은 윈도우 7 Ultimate English 64Bit, 컴파일러는 MinGW 64Bit입니다.

이 밑은 jpeg 파일을 저장하는 코드입니다.

QPixmap pixmap = QWidget::grab(rect());
    QImage image = pixmap.toImage();
    bool isSave = pixmap.save("E:/aa.jpeg", "jpeg", 100);
    bool isSave1 = image.save("E:/aa.jpeg", "jpeg", 100);
 
    QString a;
 
    if(isSave)
        a = "TRUE";
    else
        a = "FALSE";
 
    ui->lineEdit->setText(a);
 
    if(isSave1)
        a = "TRUE";
    else
        a = "FALSE";
 
    ui->lineEdit_2->setText(a);

DarkSide의 이미지

Qt의 /bin 폴더도 경로 지정이 되어 있나요?

kjh27814의 이미지

런타임에서 돌렸을 때 라이브러리 경로를 확인해봤을땐
1. 실행폴더
2. Qt컴파일러 폴더/plugins

이렇게 두개의 경로가 디폴트로 잡혀 있었습니다.

ifree의 이미지

/bin 경로가 잡혀 있으면 plugins 폴더 경로를 포함하지 않아도 됩니다. 윗분 말씀대로 윈도우즈 PATH 에 경로가 제대로 되어 있는지 확인해 보세요.

kjh27814의 이미지

/bin 폴더의 libjpeg-8.dll을 포함시키니 정상동작하네요!

답변 주신분들 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.