• 締切済み

fopenの使い方?(画像の保存)

お世話になります。 exif_thumbnailで取得したサムネイル画像をjpgファイルとして元画像ファイルとは別名で保存したいと考えています。 テストで以下のようなコードを作成しましたが、うまく保存できません。fopenの基本的な使い方が間違っているのではないかと思っていますが、どこがおかしいのかわからずにおります。 <?php $img = exif_thumbnail("./test.jpg", $width, $height, $type); $handle = fopen ("./thumb.jpg", 'a'); fwrite($handle, $img); ?> ちなみにPHPのバージョンは5.0.3です。 echo($img);でサムネイル画像が取得できていることは確認できております。 要はtest.jpg → $img → thumb.jpgとできればいいのですが。。 どうしたらうまく保存できますでしょうか。 よろしくお願いします。

みんなの回答

  • world99
  • ベストアンサー率64% (20/31)
回答No.2

JavaでExif情報保存の仕方について調べておりました所、この質問を見かけました。興味を持ったので、調べてみました。 "nasda"さんと同じように、サンプルを作ったら、うまく保存できました。恐らく、"nasda"さんが利用なさったJPEGがEXIF形式でないのが原因だと思います。まず、exif_thumbnail()関数の戻り値を確認してみては如何でしょうか。 -------------------------------------------------- $baseDir = "C:/tmp/"; $filePath = $baseDir."sample.jpg"; $outputFile = $baseDir."save.jpg"; $image = exif_thumbnail($filePath, $width, $height, $type); $hdl = fopen($outputFile, 'a'); fwrite($hdl, $image); fclose($hdl); if ($image) { header('Content-type: ' .image_type_to_mime_type($type)); echo $image; exit; } else { echo 'No thumbnail available'; } --------------------------------------------------

回答No.1

これで如何でしょう。 fopenの操作モードをaの通常書き込み用から bのバイナリモードに変更しています。 動作未確認ですが。。。 <?php $img = exif_thumbnail("./test.jpg", $width, $height, $type); $handle = fopen ("./thumb.jpg", 'b'); fwrite($handle, $img); fclose($handle); ?>

nasda
質問者

お礼

遅くなりましてすみません。 ありがとうございます。 bに変えてみましたが、できませんでした。 うーん、、