掲題の件について質問です。
いま、PHPのGDライブラリを用いて大量の既存のイメージファイル(JPEG)から各三種類ほどのサムネイルを作成しているのですが一点問題があります。
既存のイメージを縮小してサムネイルを作成しているのですが、この元となる画像は
解像度72dpiの画像となるのですが、GDを用いて作成されたサムネイルは96dpiの解像度として作成されるのです。
故合ってdpiは72でなければなりません。
このPHPのGDライブラリで画像のDPIの指定は出来ないでしょうか?
識者の方、よろしければご教授ください。
お願い致します。
No.3ベストアンサー
- 回答日時:
ざっと検証してみましたが、Exifの問題みたいですね
GDの設定もみてみましたがちょっとパラメータがみつからなかったので
厳しいかも、imageMagickに切り替えるのが手っ取り早いでしょう。
書き方の差を吸収するには、前回も書きましたがPEARライブラリを
使うとよいでしょう。
また、Exifの29バイト目あたりからのバイナリデータをいじれば
いけそうですが、こればっかりはあまりお勧めはできません。
No.5
- 回答日時:
php online manual のuser note にdpi 変更法が有ります。
No2回答の方のあまりお薦めしないとあった、バイト列を直接書き換える方法ではありますが、関数にでもしておけば、あとは呼び出すだけですし。
固定で 72 dpi 指定にするなら、元画像のexif を読む必要もないので、これだけでよいのでは?
http://jp.php.net/manual/ja/function.imagejpeg.p …
No.4
- 回答日時:
はじめまして。
ご期待の回答ではないのですが、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で作成できれば当面のお役には立てるかなと思いまして…
No.2
- 回答日時:
ざっと検証してみましたが、Exifの問題みたいですね
GDでは厳しいかも、imageMagickに切り替えるのが手っ取り早いでしょう。
差を吸収するには、前回も書きましたがライブラリを使うことになります。
Exifの29バイト目あたりからのバイナリデータをいじれば
いけそうですが、あまりお勧めはできません。
No.1
- 回答日時:
サムネイルに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のサムネイルを作りたいと思っているのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- YouTube YouTubeのサムネイル(静止画)を自分で選ぶか、作成したい 1 2022/07/03 15:37
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- マウス・キーボード Blenderで3dcg制作をしている初心者なのですが、 プロになるためには マウスはカウント(解像 1 2023/08/27 23:49
- フリーソフト アイコンとして保存アプリが不調 2 2022/04/16 06:39
- Visual Basic(VBA) ChatGPTに作らせたい Excel VBA 1 2023/04/05 19:56
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Windows 10 Windows10の画像ファイルのサムネールがアイコン表示になってしまいました。 3 2022/07/09 13:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpで画像がどうしても文字化け...
-
透過PNGが透過されない!!
-
imageフォルダに、画像をリサイ...
-
ファイルアップロードのダイア...
-
Illustratorで文字と画像を流し...
-
BLOBデーターの画像の表示方法...
-
アップロード画像数でCSSを分け...
-
phpで画像を保存するときにリサ...
-
phpMyAdminに画像を保存できない
-
libpngでpng操作がうまくいかない
-
PHPで吐き出した画像にリンクを...
-
VBSの「MsgBox」について
-
最も速い画像合成処理を教えて...
-
phpについて
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
phpとaspの違いについて
-
form actionで二つ送信先を指定...
-
PHP8を使うと、大量のWarningが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
PythonのTkinter詳しい方へ。画...
-
VBAでJPGサイズ変更
-
C# Excelファイルへの画像挿入。
-
ListViewコントロールでサムネ...
-
PHPで吐き出した画像にリンクを...
-
php,mysqlにて画像パス保存/表...
-
PHP+PostgreSQLを使ってPDFファ...
-
スマートフォンから画像のアッ...
-
画像にテキストを埋め込むジェ...
-
実行ファイル(exe)に画像ファ...
-
ビットマップ画像を読み込むプ...
-
改行コードのカウント
-
Ajaxで画像表示
-
画像アップロードのファイル名...
おすすめ情報