0

PHP経由で画像を保存したい。私のコードは次のようなものです:

$image = imagecreatefrompng("myimage.png");
$width = imagesx($image);
$height = imagesy($image);

if ($width == 0) {
    $thumb_width = 0;
    $thumb_height = 0;
} else {
    $thumb_width = 600;
    $thumb_height = (int)(600 * $height / $width);
}

$original_aspect = $width / $height;
$thumb_aspect = $thumb_width / $thumb_height;

if ( $original_aspect >= $thumb_aspect )
{
   // If image is wider than thumbnail (in aspect ratio sense)
   $new_height = $thumb_height;
   $new_width = (int)($width / ($height / $thumb_height));
}
else
{
   // If the thumbnail is wider than the image
   $new_width = $thumb_width;
   $new_height = $thumb_height;
}

$thumb = imagecreatetruecolor( $thumb_width, $thumb_height );

// Resize and crop
imagecopyresampled($thumb,
                   $image,
                   0, 0,
                   0, 0,
                   $new_width, $new_height,
                   $width, $height);
imagejpeg($thumb, "newimage.jpg", 80);
  1. newimage.jpg が png よりもはるかに暗いという問題があります - なぜ、適切に保存するにはどうすればよいのでしょうか。

  2. newimage.jpg を新しい不透明度で保存する方法はありますか? - どうやってやるの?

ありがとう :)

4

1 に答える 1

1

お使いのバージョンの PHP が使用している GD のバージョンは、カラー プロファイルをサポートしていません。

サーバーを更新できない場合は本当の問題であり、迷惑なほど一般的です.

于 2013-05-30T21:08:25.570 に答える