PHPで質問です。


下記のソースで画像のリサイズを行っておりますが、pngのみがうまくいきません。
何か、対応策はございますでしょうか?

/***********************************************************
* 画像のリサイズ
***********************************************************/
function Set_Pic_Resize($filename, $ext, $width, $height=''){

// 画像を開く
switch ($ext){
case 'jpg':
$im_inp = ImageCreateFromJPEG($filename);
break;
case 'gif':
$im_inp = ImageCreateFromGIF($filename);
break;
case 'png':
$im_inp = ImageCreateFromPNG($filename);
break;
}


$ix = ImageSX($im_inp); // 読み込んだ画像の横サイズを取得
$iy = ImageSY($im_inp); // 読み込んだ画像の縦サイズを取得
$ox = $width; // サイズ変更後の横サイズ
$oy = ($ox * $iy) / $ix; // サイズ変更後の縦サイズ

// サイズ変更後の画像データを生成
$im_out = ImageCreateTrueColor($ox, $oy);
ImageCopyResampled($im_out, $im_inp, 0, 0, 0, 0, $ox, $oy, $ix, $iy);

// 画像の保存
switch ($ext){
case 'jpg':
ImageJPEG($im_out, $filename);
break;
case 'gif':
ImageGIF($im_out, $filename);
break;
case 'png':
ImagePNG($im_out, $filename);
break;
}

// メモリーの解放
ImageDestroy($im_inp);
ImageDestroy($im_out);
}

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/10/09 17:18:26
  • 終了:2007/10/16 17:20:04

回答(2件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812007/10/09 18:46:32

ポイント60pt

手元の環境 (Windows2000 + Apache2.061 + PHP 5.2.4 + GD 2.0.34) では正常に動作しているようです (32x32 8bit 256色、800x600 24bit フルカラー、765x541 24bit フルカラーの画像でテスト)。


直接解決につながるようなことは言えませんが……

  • うまく行かないとは具体的にどういうことでしょうか (途中で エラーや Waring が出る、変換結果がおかしいなど)。
  • どんな PNG 画像でもうまくいかないのでしょうか。
  • $im_inp をそのまま保存した場合はどうでしょう。
  • サイズを変更しない (ターゲットサイズも $ix, $iy にする)場合はどうでしょう。

http://q.hatena.ne.jp

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 larkmild2 104 76 2 2007-10-12 04:49:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません