<?
class Resize {
function resize_exec($in, $out, $x, $y){
$img_in = imagecreatefromjpeg($in);
$ix = imagesx($img_in);
$iy = imagesy($img_in);
$img_out = imagecreatetruecolor($ix, $iy);
ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, $x, $y, $ix, $iy);
$quality = 100;//画質クオリティ(標準値 75)
imagejpeg($img_out, $out, $quality);
imagedestroy($img_in);
imagedestroy($img_out);
}
}
?>
というクラスを作成して
コンストラクタ内でnewして
$this->resize->resize_exec($upfile, $sendpath, 50, 30);
としたのですが、リサイズできません。
どこか悪いでしょうか?
対象画像はとりあえずjpegでいいかなと考えています。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>$img_out = imagecreatetruecolor($ix, $iy);





$img_out = imagecreatetruecolor($x, $y);

です。

>$this->resize->resize_exec($upfile, $sendpath, 50, 30);

このクラスだけであれば、
Resize::resize_exec($upfile, $sendpath, 50, 30);

で充分です。

newする必要があるのであれば、
$resize = new Resize();
$resize->resize_exec($upfile, $sendpath, 50, 30);

などとします。

以下、サンプルファイルです。
tmp フォルダはchmodでパーミッションの設定をしておいてください。

<?

class Resize {
function resize_exec($in, $out, $x, $y)
{
$img_in = imagecreatefromjpeg($in);
$ix = imagesx($img_in);
$iy = imagesy($img_in);
$img_out = imagecreatetruecolor($x, $y);
ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, $x, $y, $ix, $iy);
$quality = 100;//画質クオリティ(標準値 75)
imagejpeg($img_out, $out, $quality);
imagedestroy($img_in);
imagedestroy($img_out);
}
}

Resize::resize_exec("tmp/in.jpg", "tmp/out.jpg", 200, 200);

?>
    • good
    • 0

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


人気Q&Aランキング

おすすめ情報