diff --git a/src/tiff.cc b/src/tiff.cc index b1e2bc1a8..d3da58e71 100644 --- a/src/tiff.cc +++ b/src/tiff.cc @@ -8,20 +8,23 @@ namespace GdTiff { -void tiff2img( std::vector< char > & data, const char * format ) +void tiff2img( std::vector< char > & data ) { QImage img = QImage::fromData( (unsigned char *)&data.front(), data.size() ); if ( !img.isNull() ) { QByteArray ba; - QBuffer buffer( &ba ); + + QBuffer buffer( &ba ); // buffer doesn't own ba buffer.open( QIODevice::WriteOnly ); + QSize screenSize = QApplication::primaryScreen()->availableSize(); QSize imgSize = img.size(); int scaleSize = qMin( imgSize.width(), screenSize.width() ); - img.scaledToWidth( scaleSize ).save( &buffer, format ); - buffer.setData( data.data(),data.size() ); - buffer.close(); + img.scaledToWidth( scaleSize ).save( &buffer, "webp" ); + + memcpy( data.data(), ba.data(), ba.size() ); + data.resize( ba.size() ); } } diff --git a/src/tiff.hh b/src/tiff.hh index 6b4274e3d..bb0b2e78f 100644 --- a/src/tiff.hh +++ b/src/tiff.hh @@ -4,6 +4,6 @@ #include namespace GdTiff { -void tiff2img( std::vector< char > & data, const char * format = "webp" ); +void tiff2img( std::vector< char > & data ); }