Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-127937

QImage not properly saved into JPEG file

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.5.3
    • Image formats
    • None
    • macos sonoma
    • macOS

    Description

      Hi,

      I have an application that needs to save a QImage with a size of 6000 pixels by 4000 pixels into a JPEG file.

      Sometimes this image is not properly saved, when I try to read it I get the following message :

      qt.gui.imageio.jpeg: Corrupt JPEG data: premature end of data segment

      It does not happen all the time.

      I make a simple program to show the issue. When running this example, we can see that the issue happens randomly

      The main file:

       

      #include <QApplication>
      #include <QImage>
      #include <QtDebug>
      
      #include <exception>
      
      void RunTest()
      {
          QString outputFileName = "./output.jpeg";
          int const width = 6000;
          int const height = 4000;
          {
              QImage image( width, height, QImage::Format_RGB32 );
              image.fill( qRgb( 0, 0, 0 ) );
              image.save( outputFileName );
          }
          qDebug() << "Reading file " << outputFileName;
          QImage check( outputFileName );
          if( check.isNull() )
          {
              throw std::exception();
          }
      }
      
      void
      RunTests( int inNumTests )
      {
          for( int i = 0; i < inNumTests; ++i )
          {
              RunTest();
          }
      }
      
      int main( int argc, char * argv[] )
      {
          QApplication app( argc, argv );
          RunTests( 10 );
          return 0;
      }
       

       The CmakeLists.txt file

      cmake_minimum_required( VERSION 3.10 )
      project( BugJPEGWithQt653 )
      set( CMAKE_PREFIX_PATH "/usr/local/Qt-6.5.3" )
      set( CMAKE_CXX_STANDARD 17 )
      set( CMAKE_CXX_STANDARD_REQUIRED ON  )
      find_package( Qt6 COMPONENTS Core Gui Widgets REQUIRED )
      add_executable( BugJPEGWithQt653 main.cpp )
      target_link_libraries( BugJPEGWithQt653 Qt6::Core Qt6::Widgets Qt6::Gui )
       

       

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            clint Christiohe Glinel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes