4

私は imagemagick を使用して、convert so: を使用して自分のウェブサイトの画像からサムネイルを作成してconvert -size 220x220 %s -resize 220 -profile '*' %s", $image, $thumbいます。これは長い間うまく機能しています。何千もの画像が処理され、すべてのサムネイルが見栄えがします... 1 つを除いて. 何らかの理由で、この画像は非常に醜いサムネイルを生成しますが、その理由がわかりません。

元の画像: http://i.imgur.com/fCbAN.jpg

生成されたサムネイル: http://i.imgur.com/MdLCs.jpg

私の変換コードでなぜこれが起こるのかについて、誰かが洞察を持っていますか?

4

1 に答える 1

5

サムネイルは非常に低い品質で保存されています (約 10 ~ 15、99 はロスレスに近い)。「なぜそうなったのか」が問題だと思います。

いくつかの理由を考えることができますが、実験する必要があります。あなたが投稿した画像は実際の画像(PNGからJPGへの変換などのコピーではありません)であり、コマンドラインは完全であり、完全な画像ワークフローを説明していると思います。

  • ImageMagick のセットアップは、推定画質を維持しようとします。品質を明示的に設定しない-quality 75ので (例: )、サムネイルはソース画像と同じ量子化設定を取得します。ソースに低い量子化器があるが、高周波成分のためにそれが見えないとします (画像はスキャンのために「ノイズが多い」)。リサンプリングすると、背景はノイズを失い、ソースにはなかった滑らかなグラデーションになります。そして、スムーズなグラデーションは、低量子化器では地獄です。品質係数を明示的に設定してみてください(40 から 99、40 は圧縮率が高くなりますが分厚い、99 は非常に高品質ですがファイルが大きくなります)。

  • リサンプラーとスキャナーが取得した画像に作成するモアレ パターンとの間に何らかの干渉があります。約 8 ピクセルの「波長」はまったく珍しくありません。また、取得した非常に多くの画像で、この画像とほぼ同じサイズとアスペクト比を持っているものはなかったと思います。このシナリオでは、同じ動作を引き起こすはずです。あなたはそれが起こらなかったと言うので、この画像のサイズ、縦横比、またはソースが珍しくない場合 (たとえば、バッチで Scan-o-matic 600 スキャナーでスキャンされた数少ない画像の 1 つ)、このシナリオは次のようになります。かなりありそうもない。しかし、それが正しい場合は、サイズ変更の前にガウスぼかしを追加すると、問題が修正されるはず-blur 2x2です。

  • ファイル名に悪いjujuがあり、何らかの理由でImageMagickラッパーが「量子化器を最もひどい値に設定する」コマンドを解釈します。非常にありそうもない (インタープリターがファイル名の一部をオプションとして解釈する場合、それをファイル名として解釈すべきではなく、ファイル名の残りの部分はもはや本当のファイル名ではありません。その結果、「ファイルが見つかりません」というエラーが発生します。元のファイル名が「--progressive-swedish-music.jpg」のようなものである場合は、サムネイル化する前に名前を変更してみてください

とにかく、私はオプション#1にお金を入れています。

別のテストとして、PHP からではなく ImageMagick (コマンド ライン) から同じコマンドを実行することもできます。

于 2012-09-19T22:37:51.943 に答える