Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [Solved]QImage fail to read jpeg--dll deploy problem
Qt 6.12 LTS is out! See what's new in the release blog

[Solved]QImage fail to read jpeg--dll deploy problem

Scheduled Pinned Locked Moved General and Desktop
16 Posts 3 Posters 19.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    ChrisW67
    wrote on last edited by
    #3

    No, it does not need a special library. Assuming that get_image_name(image_url) produces a valid file name (without path) for the host system the file will be written into the current working directory of the process. On Windows 7 attempts to write to protected locations will either fail (manifest in program) or be redirected (no manifest). Either way the file will not be where you expect it. Check this first.

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #4

      Thanks for your reply, but the problem is not because it can't save the image but the
      QImage failed to recognize "it is a jpg"

      @
      //the QImage is "null " even the size of the QByteArray are the same, on my
      //PC, virtual box, and the other's PC
      image.loadFromData(reply->readAll() );
      @

      @
      image.loadFromData(reply->readAll(), "jpg"); //still fail
      @

      Whatever, the size of the QImage is always (0, 0) on other pc
      but my pc work perfectly good, don't know what is happening

      1 Reply Last reply
      0
      • JKSHJ Offline
        JKSHJ Offline
        JKSH
        Moderators
        wrote on last edited by
        #5

        Let's debug, step-by-step.

        First, pass the result of QNetworkReply->readAll() to QFile::write(). Has the image downloaded correctly? Can you open the image in your computer?

        If it doesn't work, then something's wrong with the download.
        If it does works, then the problem is not in QNetworkAccessManager (so you should change your title).

        Also, please provide details on how you "release the binary to other computer"?

        Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

        1 Reply Last reply
        0
        • ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #6

          Thanks for your advices, I change the codes to

          @
          QImage image;
          QString const image_url = reply->url().toString();
          QByteArray image_array = reply->readAll();
          image.loadFromData(image_array); //fail to load the image_array

          QFile file("temp");
          
          if ( !file.exists()) qDebug() << "can't find";
          
          if(!file.open(QIODevice::WriteOnly) ) qDebug() << "can't open";
          
          file.write(image_array); //but the data could be save and display by other software
          

          @

          Maybe I should change the title to "QImage fail to read jpeg"

          1 Reply Last reply
          0
          • C Offline
            C Offline
            ChrisW67
            wrote on last edited by
            #7

            Chances are you have not deployed the image format plugins (not that you really need them to save the downloaded image as JKSH points out).

            1 Reply Last reply
            0
            • ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #8

              I release my program with the items as follow

              1 : release with the exe compile by mingw4.6.2
              2 : put other's dll in the same folder
              libgcc_s_dw2-1.dll, libstdc++-6.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll

              Test it on Virtual box and other pc, make sure it has the same behaviour on my pc

              1 Reply Last reply
              0
              • JKSHJ Offline
                JKSHJ Offline
                JKSH
                Moderators
                wrote on last edited by
                #9

                Yup, that's a better title :) whi

                Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                1 Reply Last reply
                0
                • ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #10

                  I make the codes become easier to read
                  @
                  int main(int argc, char *argv[])
                  {
                  QApplication a(argc, argv);

                  QImage image("temp.jpg");
                  qDebug() << image.size(); //the size is (0, 0) even the jpg can be read by other software
                  image.save("haha");
                  
                  return a.exec(&#41;;
                  

                  }
                  @

                  on my pc, it works prefectly, but other pc just don't work

                  1 Reply Last reply
                  0
                  • JKSHJ Offline
                    JKSHJ Offline
                    JKSH
                    Moderators
                    wrote on last edited by
                    #11

                    Interesting...

                    Try this and see if you can get any useful info:
                    @
                    qDebug() << "Supported formats:" << QImageReader::supportedImageFormats();

                    QImageReader reader("temp.jpg");
                    qDebug() << "Can read file?:" << reader.canRead();

                    QImage image = reader.read();
                    qDebug() << reader.errorString();
                    @

                    Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                    1 Reply Last reply
                    0
                    • ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #12

                      Weird, extremely weird,same dll, same exe, same os

                      on my pc, the answer are

                      bq. Supported formats: ("bmp", "gif", "ico", "jpeg", "jpg", "mng", "pbm", "pgm", "pn
                      g", "ppm", "svg", "svgz", "tga", "tif", "tiff", "xbm", "xpm")
                      Can read file?: true
                      "Unknown error"

                      on other pc, the answer are

                      Supported formats: ("bmp", "pbm", "pgm", "png", "ppm", "xbm", "xpm")
                      Can read file?: false
                      "Unsupported image format"

                      1 Reply Last reply
                      0
                      • JKSHJ Offline
                        JKSHJ Offline
                        JKSH
                        Moderators
                        wrote on last edited by
                        #13

                        Try copying C:[Qt-installation]\4.8.2\plugins\qjpeg4.dll

                        Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                        1 Reply Last reply
                        0
                        • ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by
                          #14

                          I copy the dll of plugins into the folder, but the QImage still don't support jpg

                          1 Reply Last reply
                          0
                          • JKSHJ Offline
                            JKSHJ Offline
                            JKSH
                            Moderators
                            wrote on last edited by
                            #15

                            http://www.qtcentre.org/threads/32614-DLL-Deploying-problems

                            Sounds like they succeeded when they put qjpeg4.dll inside a subdirectory called "imageformats"

                            Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                            1 Reply Last reply
                            0
                            • ? Offline
                              ? Offline
                              A Former User
                              wrote on last edited by
                              #16

                              Thanks a lot, the problem solved.

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt
                              • Unsolved