2

libpng & png++ を使用して画像にバイキュービック サイズ変更を適用する方法が説明されているチュートリアルを教えてもらえますか? 何かを探すのに 3 時間近く費やしましたが、見つかりません。たぶん、どこを見たらいいのかわからないからです。

画像 ( 48 ビット画像) を で読み取り、出力用libpngに に読み取りQImageます。画像に使用するQImage::scaledと、ピクセル情報が失われ、画像は必要なものには役に立ちません。

私は png::rgba_pixel_16 ピクセルで画像を読み込んで操作します - 次のように読みます:

png::image< png::rgba_pixel_16 > myImage(myFile.toAscii());

別の答えを引用:

QImage にはコンポーネントあたり 16 ビットのフォーマットはありません。あなたが得ることができる最大のものは、コンポーネントあたり8ビットの QImage::Format_ARGB32 です。8 ビット インデックス モードを使用した場合でも、カラー テーブルはコンポーネントごとに 8 ビットを超えてサポートしません。さらに、QImageIOHandler クラスは QImage に関して機能するため、残念ながら、カラー コンポーネントごとに 16 ビットで機能するカスタム イメージ フォーマット プラグインを作成することはできません。

最後の引用は、これに QImage を使用できない理由を説明しています。

4

3 に答える 3

2

プログラムで画像のサイズを変更したいだけなら、imagemagickを見てください。

于 2012-03-07T08:43:55.117 に答える
1

Qt では libpng は必要ありません。

使うだけ

QImage QImage::scaled ( const QSize & size, Qt::AspectRatioMode aspectRatioMode, Qt::TransformationMode transformMode ) const

transformMode = Qt::SmoothTransformationバイリニアスケーリングの場合。

于 2012-03-07T09:38:50.857 に答える
0

libpng が必要な理由 画像を配列で読み取ってからサイズ変更を実行するだけで、libpngは必要ありません。画像を読み取った後、フォーマットに依存しなくなります...

于 2012-03-07T08:29:41.463 に答える