При уменьшении картинки появляется черная рамка

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
На основе картинки создаю 3 маленьких копии: 110х110, 175х175, 400х400.
Среднее изображение получается с полосой по верхнему краю, иногда еще и слева полоса, черного цвета. Зависит от размеров. Но зависимость пока не пойму.
Маленькая и большая картинка нормальные.
Делаю на основе класса DLE (thumb.class.php). Делаю через метод $thumb->size_auto(110х110). Т.е. ресайз и обрезка.
Как можно решить проблему?
 
формат небось png . Почитай про особенности отображения png - у меня такая фигня на джумле была, когда картинки ресайзились движком.
 
формат небось png . Почитай про особенности отображения png - у меня такая фигня на джумле была, когда картинки ресайзились движком.
точно! Как решается?
Хотя в DLE это уже предусмотрено, насколько я понял:
PHP:
if ( $this->img['format'] == "PNG" ) {
            imagealphablending( $this->img['des'], false);
            imagesavealpha( $this->img['des'], true);
        }
 
программно - хз) я руками ресайзил. Надо разбираться в особенностях генерирования прозрачного пнг
 
Тут 2 варианта:
- Размер итогового изображения не совпадает с размером вставляемой в него картинки, проверьте все размеры, нужно что бы они совпадали
- Кроп по чёрной рамке, если устраивает итоговая картинка
 
возможно по краям картинки полупрозрачный слой, который из-за ресайза просвечивает черным
 
у GD иногда бывают проблемы с альфа каналами gif и png, это вроде как зависит от того как было создано исходное изображение.
в таких случаях обычно просто восстанавливают прозрачность
PHP:
if ( $this->img['format'] == "PNG" ) {
   imagecolortransparent($this->img['des'], imagecolorallocatealpha($this->img['des'], 0, 0, 0, 127));
   imagealphablending($this->img['des'], false);
   imagesavealpha($this->img['des'], true);
 }
 
Скорее всего формат png, попробуй изменить формат
 
у GD иногда бывают проблемы с альфа каналами gif и png, это вроде как зависит от того как было создано исходное изображение.
в таких случаях обычно просто восстанавливают прозрачность
PHP:
if ( $this->img['format'] == "PNG" ) {
   imagecolortransparent($this->img['des'], imagecolorallocatealpha($this->img['des'], 0, 0, 0, 127));
   imagealphablending($this->img['des'], false);
   imagesavealpha($this->img['des'], true);
}
чет не помогает. У меня прозрачность то восстанавливает, но вот рамка есть
medium_39211463555738.png
 
Мне кажется проблема в родительском элементе, и формате файла. Посмотрите, куда сама по себе картинка "вставляется", возможно там что-то не то! Хотя, могу ошибаться.
 
Назад
Сверху