0

私はjcrop自分のWordpressプロジェクトで使用しています。元の拡張子で画像を保存する方法を考えていました。私のコードはjpg画像に対してのみ機能するように。トリミングした画像をサーバーに保存しています。ここに私のPHPコードがあります:

if(isset($_POST['saveCrop']))
{

    $targ_w = $targ_h = 150;
    $jpeg_quality = 90;
    $src = plugins_url( "employee/uploads/".$_POST['imgName'] , dirname(__FILE__) );
    $img_r = imagecreatefromjpeg($src);
    $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
    imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
    $targ_w,$targ_h,$_POST['w'],$_POST['h']);

    header('Content-type: image/jpeg');
    @imagejpeg($dst_r, $_SERVER['DOCUMENT_ROOT']."/wp-content/plugins/employee/uploads/".$_POST['imgName'], $jpeg_quality);
    //imagejpeg($dst_r,null,$jpeg_quality);

}

画像で試してみるとpng、黒い画像が得られます。についても同じことが起こりgifます。すべての拡張子で動作し、元の拡張子 (jpg の場合は jpg、png の場合は png) で保存するにはどうすればよいですか。 更新:: *わかりました..pngファイルを作成するために、このコードを試していました。私は何か間違ったことをしていると確信しています: *

$img_r = imagecreatefrompng($src);
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );

imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
$targ_w,$targ_h,$_POST['w'],$_POST['h']);

header('Content-type: image/png');
@imagepng($dst_r, $_SERVER['DOCUMENT_ROOT']."/wp-content/plugins/employee/uploads/".$_POST['imgName'], $jpeg_quality);
4

1 に答える 1