圧縮画像データをメモリ上に書き込む
jpgやpng形式の画像データを、ファイルでなくメモリ上に書き込みたい場合があります。できます。
#include <QBuffer> #include <QFile> #include <QImageWriter> // 画像を読み込む QImage img; img.load( "C:\\Users\\Public\\import.png" ); // メモリ上 (buf) にjpg形式で書き込む QBuffer buf; QImageWriter iw( &buf, "jpg" ); // "png" なら png形式 iw.write( img ); // 書き込んだデータを、ファイルに書き込み確認する QFile f( "C:\\Users\\Public\\export.jpg" ); if (f.open( QIODevice::WriteOnly )) { f.write( buf.buffer().constData(), buf.size() ); f.close(); }
jpgの保存品質は、QImageWriter の setQuality で指定できます。