アプリ版:「スタンプのみでお礼する」機能のリリースについて

掲題の件について質問です。

いま、PHPのGDライブラリを用いて大量の既存のイメージファイル(JPEG)から各三種類ほどのサムネイルを作成しているのですが一点問題があります。

既存のイメージを縮小してサムネイルを作成しているのですが、この元となる画像は
解像度72dpiの画像となるのですが、GDを用いて作成されたサムネイルは96dpiの解像度として作成されるのです。
故合ってdpiは72でなければなりません。

このPHPのGDライブラリで画像のDPIの指定は出来ないでしょうか?
識者の方、よろしければご教授ください。
お願い致します。

A 回答 (5件)

ざっと検証してみましたが、Exifの問題みたいですね


GDの設定もみてみましたがちょっとパラメータがみつからなかったので
厳しいかも、imageMagickに切り替えるのが手っ取り早いでしょう。

書き方の差を吸収するには、前回も書きましたがPEARライブラリを
使うとよいでしょう。

また、Exifの29バイト目あたりからのバイナリデータをいじれば
いけそうですが、こればっかりはあまりお勧めはできません。
    • good
    • 0

php online manual のuser note にdpi 変更法が有ります。


No2回答の方のあまりお薦めしないとあった、バイト列を直接書き換える方法ではありますが、関数にでもしておけば、あとは呼び出すだけですし。
固定で 72 dpi 指定にするなら、元画像のexif を読む必要もないので、これだけでよいのでは?
http://jp.php.net/manual/ja/function.imagejpeg.p …
    • good
    • 0

はじめまして。



ご期待の回答ではないのですが、phpでサムネイルを作成してみたら、72dpiで作成されたので報告します。
<?php
$im = imagecreatefromjpeg("./*****.jpg");
      $width0=350;
$width = ImageSX($im);
$height = ImageSY($im);
$new_image0 = ImageCreateTrueColor($width0, $height*($width0/$width));
$new_image1 = ImageCreateTrueColor($width0, $height*($width0/$width));
ImageCopyResized($new_image0,$im,0,0,0,0,$width0,$height*($width0/$width),$width,$height);
ImageCopyResampled($new_image1,$im,0,0,0,0,$width0,$height*($width0/$width),$width,$height);

imagejpeg($new_image0,"./im0.jpg",0,100);
imagejpeg($new_image1,"./im1.jpg",0,100);
?>
こんな感じで作成しました。元画像72dpi、作成された画像も72dpiでした。PHOTOSHOPCS5で確認しました。
私のPCはVista32Bit、PHPのバージョンは5.4.0(vc9)、ライブラリはphp_gd2.dllです。

解像度の変更はできないみたいですが、72dpiで作成できれば当面のお役には立てるかなと思いまして…
    • good
    • 0

ざっと検証してみましたが、Exifの問題みたいですね


GDでは厳しいかも、imageMagickに切り替えるのが手っ取り早いでしょう。
差を吸収するには、前回も書きましたがライブラリを使うことになります。
Exifの29バイト目あたりからのバイナリデータをいじれば
いけそうですが、あまりお勧めはできません。
    • good
    • 0

サムネイルにdpiを指定するくだりがよくわからないのですが


縦か横のサイズを指定してjpegを吐き出すのではいけないのでしょうか?

サムネイルをつくるだけならPEAR::image-transformあたりが
使いやすかったです。
ただGDよりimagemagicの方がきれいにサムネイルがつくれますね

参考URL:http://pear.php.net/manual/ja/package.images.ima …

この回答への補足

さっそくのお答えありがおうございます。

要望のあるサムネイルのdpiが72dpiと指定されているのです。

実際に、印刷などする場合をのぞきPC上でdpiは問題ではないですが
そういう、条件なので・・・。
GDで作ったサムネイルも画像のプロパテイから概要タブで実際の
dpiが確認できるので、確認したところ96dpiとなっていたので・・・。
なんとかして72dpiのサムネイルを作りたいと思っているのです。

補足日時:2012/04/27 12:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!