画像解像度を変更したくネットにて調べていたところ、
下記のURLを見つけました。
http://gac.kir.jp/11/20040
この中に記載されていたプログラムを実行したところ正常に200dpiへ変更されました。
$data = file_get_contents( "$jpgfile" );
$pos_APP0 = strpos( $data, chr(0xFF).chr(0xE0) );
// 解像度の文字列 200dpi
$Resolution = chr(0x01).chr(0x00).chr(0xC8).chr(0x00).chr(0xC8);
// 置き換え
$outdata = substr( $data, 0, ($pos_APP0+11) );
$outdata .= $Resolution;
$outdata .= substr( $data, ($pos_APP0+16) );
file_put_contents( "$outjpgfile", $outdata );
私は300dpiに変換したいと考えているのですが、
$Resolution = chr(0x01).chr(0x00).chr(0xC8).chr(0x00).chr(0xC8);
の部分の書き換えが分かりません。
他のサイトからの引用ではございますが、スレッドが終了していたため、
こちらで質問させていただきました。
ご回答よろしくお願いいたします。
$Resolution = chr(0x01).chr(0x01).chr(0x2C).chr(0x01).chr(0x2C);
でJPEGの解像度タグを300に書き換えることはできます。
元のコードがちょっと不親切ですが、以下のように書くと分かりやすいですかね?
$xResolution = chr(0x01) . chr(0x2C); // 0x012C = 300 $yResolution = chr(0x01) . chr(0x2C); // 0x012C = 300 $outdata = substr($data, 0, ($pos_APP0+12)); $outdata .= $xResolution; $outdata .= $yResolution; $outdata .= substr($data, ($pos_APP0 + 16));
ただ、参考URLの議論にもなっていますが、解像度のタグを書き換えただけなので、解像度の高い画像にはなっていないですから、別の方法を考えられた方がいいと思います。
何かの参考になれば。
$Resolution = chr(0x01).chr(0x01).chr(0x2C).chr(0x01).chr(0x2C);
ご回答ありがとうございました。
バッチリ思っていた通りです。
ありがとうございました。
ご回答ありがとうございました。
上記で試してみます。