人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP 解像度変更について質問です。

画像解像度を変更したくネットにて調べていたところ、
下記の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);

の部分の書き換えが分かりません。
他のサイトからの引用ではございますが、スレッドが終了していたため、
こちらで質問させていただきました。
ご回答よろしくお願いいたします。

●質問者: clab_yasu
●カテゴリ:ウェブ制作
✍キーワード:PHP resolution URL サイト スレッド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tdoi
●20ポイント
$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の議論にもなっていますが、解像度のタグを書き換えただけなので、解像度の高い画像にはなっていないですから、別の方法を考えられた方がいいと思います。


何かの参考になれば。

◎質問者からの返答

ご回答ありがとうございました。

上記で試してみます。


2 ● goog20090901
●50ポイント

$Resolution = chr(0x01).chr(0x01).chr(0x2C).chr(0x01).chr(0x2C);

◎質問者からの返答

ご回答ありがとうございました。

バッチリ思っていた通りです。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ