У меня проблемы с изменением размера изображения в PHP; похоже, что с момента загрузки изображения с использованием imagecreatefromstring
или imagecreatefrompng
цвета меняются и становятся блеклыми.
Я знаю, что должен использовать imagecreatetruecolor
для создания целевого изображения, но я даже не дохожу до этого момента.
Вот несколько примеров, чтобы объяснить результаты, которые я получаю:
// This results in a discolored / faded image
$image = imagecreatefrompng('/path/to/my/image.png');
header('Content-Type: image/png');
imagepng($image);
die();
// This also results in a discolored / faded image
$image = imagecreatefrompng('/path/to/my/image.png');
$info = getimagesize('/path/to/my/image.png');
$sourceWidth = $info[0];
$sourceHeight = $info[1];
$resizedImage = imagecreatetruecolor($sourceWidth, $sourceHeight);
imagecopyresampled($resizedImage, $image, 0, 0, 0, 0, $sourceWidth, $sourceHeight, $sourceWidth, $sourceHeight);
header('Content-Type: image/png');
imagepng($resizedImage);
die();
// Obviously, this works flawlessly.
header('Content-Type: image/png');
echo file_get_contents('/path/to/my/image.png');
die();
Вот пример до и после:
Очевидно, что я что-то упускаю, но я посмотрел на каждый SO вопрос и ответ, который мог найти, не найдя решения своей проблемы.
У вас когда-нибудь была эта проблема?
Как мне это сделать?