2017-12-20 5 views
0

私はいくつかのPHPスクリプトをいくつかの遠隔地からPNGファイルを取得し、私のサーバ上のある場所に保存しています。PHPで画像ファイルのメモリサイズを変更する

他のいくつかのサーバーは、新しいPNGが利用可能かどうかを確認し、必要に応じてダウンロードします。問題は、画像がファイルサイズが変更された場合に画像が「新しい」とみなされることです(この変ですが、これは変更できません)。

PHPでファイルサイズを変更する可能性はありますか画像そのものを壊したり変えたり/傷つけることなく?

+0

ファイルの日付をよく確認してください。 – GolezTrol

+0

注意:「問題は、ファイルサイズが変更された場合、画像が「新規」とみなされることです(これは変わっていませんが、変更できません)。 – Jakob

+0

ファイルサイズが* *他のサーバーがそれをダウンロードするように変更されましたか? – deceze

答えて

0

基本的には、メタデータを変更することができます。 https://www.w3.org/TR/2003/REC-PNG-20031110/#11textinfo

PNGは、画像の説明や著作権 通知として画像に関連付けられたテキスト文字列 を格納するためのテキスト、iTXt、およびzTXtチャンクを提供します。キーワードは、各テキスト文字列 の内容を示すために使用されます。そのようなテキストチャンクがいくつでも表示され、同じキーワードを持つ 以上が許可されます。

私はImageMagickのより安全なパスがPNG画像のメタデータを変更することであろう How to add extra meta data to PNG?

0

でそれを行うだろう。そうすれば、イメージはまだ有効ですが、メタデータの追加されたバイトは最終的なファイルサイズに影響します。

imageMagickを使用するとあまり難しくありません。

など。

$image = new Imagick('path_to_your_file.png');  
$image->setImageProperty('keywords', 'string_or_random_length_to_change_image_size'); 
$image->writeImage('path_to_your_file.png'); 

これはトリックを行う必要があります。

論理的には、既存のメタキーワードがあればそれを破壊します。

おそらく最初にキーワードを読んで、プレフィックスとランダム化されたキーワードをリストに追加することができます(例えばchk-randstr)。将来の変更では、変更する必要があるのはchk-から別の文字列の長さは、最終的なファイルサイズを変更します。

+0

@Jakob、あなたはImageMagickをインストールできますか? – yivi

関連する問題