3

pharo を使用してハード ドライブ上の画像ファイルのサイズを変更しようとしています。これは私の現在のやり方です:

img := ImageReadWriter formFromFileNamed: 'picture.jpg'.
scaledimage := img scaledIntoFormOfSize: 100.
scaledimage writeJPEGfileNamed: 'scaledPicture.jpg'.

これは良い方法ですか?また、この画像の jpeg 圧縮品質を指定する方法はありますか?

ありがとう!

ヘンネ

4

2 に答える 2

2

さて、これを行う方法を見つけたので、解決策を共有したいと思いました. コードは次のとおりです。

img := ImageReadWriter formFromFileNamed: 'pic.jpg'.
scaledimage := img magnifyBy: 0.8.
PluginBasedJPEGReadWriter
  putForm: scaledimage
  quality: 95
  progressiveJPEG: false
  onFileNamed: 'scaledPicture95.jpg'.
scaledimage writeJPEGfileNamed: 'scaledPictureDfl.jpg'.

このようにして、画像を倍率 (この場合は 0.8) でスケーリングできます。1 より大きい係数も機能します。さらに、JPEG 品質を指定できます。この例では 95 を選択しました。フラグ プログレッシブ JPEG を使用すると、画像を作成できます。この画像は、ロード時にブラウザのプレビュー品質に表示され、送信されるデータが多いほど良くなります。ただし、これはすべてのブラウザでサポートされているわけではありません! 最後の行はオプションで、比較用にデフォルト設定で 2 番目の JPEG を保存するだけです。これから探している方の参考になれば幸いです。

ヘンネ

于 2012-11-04T08:06:47.673 に答える
1

については知りませんでしたPluginBasedJPEGReadWriter

マジックがあります。ただし、動作させるには ImageMagick と OSProcess が必要です。

完全な画像操作ライブラリが必要な場合に役立ちます。

于 2012-11-04T11:55:44.540 に答える