Задать вопрос
@rinaz22

Как сохранить прозрачность при изменении размера картинки?

Всем привет! Меняю размер картинки, с jpeg работает все ок, а вот с png проблемы, не сохраняет прозрачный фон. Пробовал добавить:
imagealphablending($img_o, false);
imagesavealpha($img_o, true);

Не помогает.
Когда imagejpeg меняю на imagepng, то вообще ничего ничего не происходит.
Вот код:
list($w_i, $h_i, $type) = getimagesize($image);
  $types = array("", "gif", "jpeg", "png");
  $ext = $types[$type];
  if ($ext) {
    $func = 'imagecreatefrom'.$ext;
    $img_i = $func($image);
  } else {
    echo "Ошибка";
    return false;
  }
  $h_o = $w_o / ($w_i / $h_i);
  if (!$w_o) $w_o = $h_o / ($h_i / $w_i);
  $img_o = imagecreatetruecolor($w_o, $h_o);
  imagealphablending($img_o, false);
  imagesavealpha($img_o, true);
  imagecopyresampled($img_o, $img_i, 0, 0, 0, 0, $w_o, $h_o, $w_i, $h_i);
  header('Content-type: image/jpeg');
  imagejpeg($img_o, null, 100);
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы