- ベストアンサー
PHP GD 画像リサイズ
PHP+GDで携帯サイト用の画像リサイズ処理させるプログラムを書籍のサンプルプログラムを元に作成していますが画像が表示されません。 GD:ver2.17 $image_data = @imagecreatefromjpeg($image_file); $output_image_data = @imagecreatetruecolor($output_image_x, $output_image_y); @imagecopyresampled($output_image_data, $image_data, 0, 0, 0, 0, $output_image_x, $output_image_y, $image_x, $image_y); header('Content-Type: image/jpeg'); @imagejpeg($output_image_data); @imagedestroy($image_data); @imagedestroy($output_image_data); 動作確認は携帯とPC両方でやってますが、携帯だと画像表示されず×が表示され、PCだと文字化けした文字が出力されます。 PCで所々デバック文を表示させたりして確認したところimagecopyresampled関数ではTRUEが返ってきておりましたが、imagejpeg関数以降のデバック文が表示しませんでした。 初心者なのでうまく説明できなくてすいません。 お手数ではございますがご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文字化けってJPEGファイルを文字列で出力しているような気がします。 一応確認ですが、header(~)の前に「html」などタグか何か出力してないですか?
その他の回答 (2)
- php504
- ベストアンサー率42% (926/2160)
PHPを置いてるサーバはレンタルサーバでしょうか サーバによっては勝手にヘッダーが出力されるところもありその場合はうまく動きません 広告が自動でつくところはまず無理です
補足
ご回答ありがとうございます。 使用しているサーバーは有料のサーバーで広告が出ることはありません。ですので勝手にヘッダーが出力されてないと思います。
- mpx
- ベストアンサー率71% (149/209)
@(アットマーク)を外して、まずはどこでエラーがでているかを確認することを薦めます。
補足
ご回答ありがとうございます。 ご指摘の通りに@を外して確認しましたがエラーは出ずに 画像表示されず×が表示されるだけで特に変化がございませんでした。
お礼
ご回答ありがとうございます。 おっしゃるとおりタグが入っていましたので外して再度 確認しましたが画像表示されず×が表示されるだけで改善しませんでした。
補足
試しに以下のようにした場合は画像がリサイズされ表示されました。 ただこの場合はその都度その携帯に合わせた画像を作成することに なり自分のさせたいこととは違うので質問時のような方法で行いたいのですが。 $output_image_data = @imagecreatetruecolor($output_image_x, $output_image_y); @imagecopyresampled($output_image_data, $image_data, 0, 0, 0, 0, $output_image_x, $output_image_y, $image_x, $image_y); imagejpeg ($output_image_data,"save.jpg"); imagedestroy ($output_image_data); echo("<img src=\"save.jpg\" />");