私は現在、画像のフォルダを最適化するコマンドラインから実行されるPHPアプリケーションに取り組んでいます。回避方法PHPで既に最適化されている画像を最適化しますか?
PHPアプリケーションは、他のImage Optimizerのラッパーであり、ディレクトリを繰り返してすべての画像を取得し、最適な結果を得るために適切なプログラムを実行します。以下は
は、私が使用するとどのようなそれぞれがimagemagick
は、ファイルの種類を決定し、アニメーションGIFを最適化するために
gifsicle
をPNG形式に非アニメーションGIFのを変換するために...使用されるプログラムですPNG画像0123を最適化するためにJPG画像
pngcrush
を最適化する画像
pngquant
にPNG8形式に私の問題をPNG画像を最適化するために、PNG8形式
pngout
にPNG画像を最適化するために:私は上で実行したら、1-10の画像では、すべてが、しかし、滑らかで、かなり速く走ります10以上の画像を持つ大きなフォルダでは、実際には遅くなります。私は本当にこれを回避する良い解決策はありませんが、助けとなるのは、イメージが既に最適化されていることを避けることです。したがって、100個のイメージを含むフォルダがあり、そのフォルダを最適化して5個の新しいイメージを追加する場合は、オプティマイザを再実行します。その後、105枚の画像を最適化しなければなりません。以前の100枚がすでに最適化されているので、5枚の新しい画像を最適化することを目標にしています。新しい画像が画像フォルダに追加されると、これだけでパフォーマンスが大幅に向上します。
単純な解決策は、画像を新しいフォルダにコピーまたは移動することです。単純な解決策の問題は、これらの画像がウェブやウェブサイトで使用されていることです。 - ウェブサイトのソースコードにリンクされ、画像へのパスを変更することは、それを複雑にし、場合によってはそれを破る可能性があります。
私が持っていたアイディアには次のものがあります:既に処理されたすべてのイメージをリストする画像ファイルのデータベースに何らかの種類のテキストファイルデータベースを書きます。したがって、アプリケーションが実行されると、既にそのファイルにあります。もう一つのアイデアは、最適化されていることを示すために名前に何らかの識別を付けるためにファイル名を忠実にすることでした.3番目の考えは最適化された各最終ファイルを最終的な宛先フォルダに移動することです。アイデア2と3は、ウェブサイトのソースコード内のすべての画像パスリンクを壊すため、良いものではありません。
この問題の適切な解決方法を考えてもらえますか?共有してください。
これは実際に私の最初のアイデアでしたが、私はこれがjpgイメージのためにしか機能しないと信じていましたか?ほとんどの場合、私のウェブ画像のほとんどはpngとgifになります。ほとんどの場合、これらのファイルに変換されます。私はちょうど私が間違っている可能性があるので、私が正しいと言いましたが、私はそれが動作するとは思わない理由ですので、私が言ったことを100%確信していません。また、画像のフォルダに含まれるファイルをリストするために、ある種の単一ファイルDBでない限り、データベースを避けたいです。 – JasonDavis
@jason - PNGにもメタデータがあります。私は答えに2つのリンクを追加しました。 –
フォローアップをありがとう、より多くの研究の後、私はある種のデータベース/ファイルを持っているのに夢中です。好ましくは、既に処理された画像をリストすることができ、次に最適化されていない画像上で実行される画像フォルダ内にあるファイルは、実行の最後にこのリストファイルを更新して、処理される。私の主な理由は、何百ものファイルがある場合、exifとメタデータを取得するためにこれらのファイルの一部を読み込む必要があり、ファイル/ dbが少し速いかもしれないと思います。このアプローチの考えは? – JasonDavis