Что такое код imagealphablending


PHP / GD ImageSaveAlpha и ImageAlphaBlending

Я использую GD для изменения размера и преобразования изображений, однако во время моих тестов я обнаружил странное поведение при преобразовании прозрачного PNG в JPEG. Согласно руководству ImageAlphaBlending() включен по умолчанию, но для сохранения прозрачности я должен установить ImageSaveAlpha() в true (что, в свою очередь, требует установки ImageAlphaBlending() в false). Итак, правильный способ:

Однако, если я делаю это «правильно», вся область прозрачности становится черной в JPEG. Кажется, это работает (JPEG с белым фоном на прозрачных областях) на моих тестах:

Может кто-нибудь прокомментировать меня по этому вопросу?

2 ответа

Вероятно, это зависит от вашего PNG. PNG файл может содержать цвет фона, который может использоваться, когда прозрачность не работает. Вероятно, ваш PNG имеет белый фон. Когда вы устанавливаете значение true для изображения, оно выбирает цвет фона из вашего PNG и использует это при записи JPEG. Когда вы установите его на false, он выбирает значение по умолчанию для GD, которое является черным.

Вы можете попробовать это для себя. Создайте прозрачный PNG и сохраните его с оранжевым или розовым фоном. Ваш второй пример должен показать этот цвет.

Кстати, трюк фонового цвета PNG хорош для изображений IE6. IE6 не поддерживает прозрачные PNG, поэтому отображает их с любым цветом фона, с которым вы их сохранили. При сохранении прозрачных PNG сохраните их с тем же цветом фона, что и ваш веб-сайт. Он будет выглядеть лучше, чем белые или черные квадратики вокруг ваших изображений PNG в IE6.

Если вы конвертируете PNG (или GIF) в JPG, скорее всего, вы должны скопировать окончательное изображение на другое изображение, заполненное белым, используя imagecopy ( $image — любое изображение, уже созданное с помощью GD):

PHP / GD ImageSaveAlpha и ImageAlphaBlending

Я использую GD для изменения размера и преобразования изображений, однако во время тестов я обнаружил странное поведение при преобразовании прозрачных PNG в JPEG. Согласно инструкции ImageAlphaBlending () включен по умолчанию, но для того, чтобы сохранить прозрачность, я должен установить для ImageSaveAlpha () значение true (что, в свою очередь, требует, чтобы я установил ImageAlphaBlending () в false). Таким образом, правильный путь должен быть:

Однако, если я делаю это «правильным» образом, вся область прозрачности становится черной в JPEG. Это похоже на работу (JPEG с белым фоном на прозрачных областях) в моих тестах:

Может кто-нибудь, пожалуйста, просветите меня по этому вопросу?

2 ответа

Это, вероятно, зависит от вашего PNG. Файл PNG может содержать цвет фона, который можно использовать, когда прозрачность не работает. Ваш PNG, вероятно, имеет белый фон. Когда вы устанавливаете imageaplhablending в true, он выбирает цвет фона из вашего PNG и использует его при записи JPEG. Когда вы устанавливаете его в false, он выбирает значение по умолчанию для GD, которое является черным.

Вы можете попробовать это для себя. Создайте прозрачный PNG и сохраните его с оранжевым или розовым цветом фона. Ваш второй пример должен показать этот цвет.

Кстати, цветовой трюк в формате PNG хорош для изображений IE6. IE6 не поддерживает прозрачные PNG, поэтому он будет отображать их с любым фоновым цветом, с которым вы их сохранили. При сохранении прозрачных PNG сохраните их с тем же цветом фона, что и на вашем сайте. Это будет выглядеть лучше, чем белые или черные квадраты вокруг ваших изображений PNG в IE6.

Илон Маск рекомендует:  user-select в CSS

Что такое код imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending — Set the blending mode for an image

Description bool imagealphablending ( resource image, bool blendmode )


Parameters

An image resource, returned by one of the image creation functions, such as imagecreatetruecolor() .

Wether to enable the blending mode or not. Default to FALSE .

Return Values

Returns TRUE on success or FALSE on failure.

Notes

Note: This function requires GD 2.0.1 or later (2.0.28 or later is recommended).

Imagealphablending

Php функции


Php скрипты


imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending — Set the blending mode for an image

Description

bool imagealphablending ( resource image, bool blendmode )

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. If blendmode is TRUE, then blending mode is enabled, otherwise disabled. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

User Contributed Notes

ashita at profund dot hu
05-Oct-2005 01:41

For «webmaster at nweurosport dot com» :

Currently IE does not support 24 (+8 alpha) bit PNG-s (nor any kind of transparent images). Mozilla and Opera handle them correctly.
Jakub Argasiсski
05-Jun-2005 10:53

I have been looking around for a while to find a script which does the following: generates image with text using specified font with given color, but with totally transparent background (by alpha-channnel, not via color transparency). Finally, I have created the script by myself. It’s just a rough idea how to do it.

$t ekst = «This is a test message\nzaїуіж gк¶l± jaјс!\nZAЇУЈЖ GК¦LЎ JA¬С?» ;

$s ize = imageTTFBBox ( $h , 0 , «arial.ttf» , $t ekst );
$i mage = imageCreateTrueColor ( abs ( $s ize [ 2 ] ) + abs ( $s ize [ 0 ] ), abs ( $s ize [ 7 ] ) + abs ( $s ize [ 1 ] ));
imageSaveAlpha ( $i mage , true );
ImageAlphaBlending ( $i mage , false );

$t lo = imagecolorallocatealpha ( $i mage , 220 , 220 , 220 , 127 );
imagefill ( $i mage , 0 , 0 , $t lo );

Вопрос по php, image &#8211 PHP / GD ImageSaveAlpha и ImageAlphaBlending

Я использую GD для изменения размера и преобразования изображений, однако во время моих тестов я обнаружил странное поведение при преобразовании прозрачных PNG в JPEG. Согласно инструкцииImageAlphaBlending() включен по умолчанию, но для сохранения прозрачности я должен установитьImageSaveAlpha() в true (что, в свою очередь, требует, чтобы я установил ImageAlphaBlending () в false). Так что правильный путь должен быть:

Однако, если я сделаю это, то «правильно» все области прозрачности становятся черными в JPEG. Это похоже на работу (JPEG с белым фоном на прозрачных областях) в моих тестах:

Может кто-нибудь, пожалуйста, просветите меня по этому вопросу?

вероятно, зависит от вашего PNG. Файл PNG может содержать цвет фона, который можно использовать, когда прозрачность не работает. Ваш PNG, вероятно, имеет белый фон. Когда вы устанавливаете imageaplhablending в true, он выбирает цвет фона из вашего PNG и использует его при записи JPEG. Когда вы устанавливаете его в false, он выбирает значение по умолчанию для GD, которое является черным.

Вы можете попробовать это для себя. Создайте прозрачный PNG и сохраните его с оранжевым или розовым цветом фона. Ваш второй пример должен показать этот цвет.

Кстати, цветовой трюк в формате PNG хорош для изображений IE6. IE6 не поддерживает прозрачные PNG, поэтому он будет отображать их с любым фоновым цветом, с которым вы их сохранили. При сохранении прозрачных PNG сохраните их с тем же цветом фона, что и на вашем сайте. будет выглядеть лучше, чем белые или черные квадраты вокруг ваших изображений PNG в IE6.

вам, вероятно, следует скопировать окончательное изображение в другое изображение, заполненное белым, используяimagecopy ( $image любое изображение уже создано с помощью GD):

PHP / GD ImageSaveAlpha и ImageAlphaBlending

Я использую GD для изменения размера и преобразования изображений, однако во время моих тестов я обнаружил странное поведение при преобразовании прозрачных PNG в JPEG. Согласно руководству ImageAlphaBlending () включено по умолчанию, но для сохранения прозрачности я должен установить ImageSaveAlpha () в true (что, в свою очередь, требует установки ImageAlphaBlending () в false). Поэтому правильный путь должен быть:

Однако, если я делаю это «правильный» способ, вся область прозрачности становится черной в JPEG. Это, кажется, работает (JPEG с белым фоном на прозрачных областях) на моих тестах:

Может кто-нибудь, пожалуйста, просветит меня по этому вопросу?

Вероятно, это зависит от вашего PNG. PNG-файл может содержать цвет фона, который может использоваться, когда прозрачность не работает. Вероятно, ваш PNG имеет белый фон. Когда вы устанавливаете значение true для изображения, оно выбирает цвет фона из вашего PNG и использует это при записи JPEG. Когда вы установите его на false, он выбирает значение по умолчанию для GD, которое является черным.

Вы можете попробовать это для себя. Создайте прозрачный PNG и сохраните его с оранжевым или розовым фоном. Второй пример должен показать этот цвет.

Кстати, трюк фонового цвета PNG хорош для изображений IE6. IE6 не поддерживает прозрачные PNG, поэтому отображает их с любым цветом фона, с которым вы их сохранили. При сохранении прозрачных PNG сохраните их с тем же цветом фона, что и ваш веб-сайт. Он будет выглядеть лучше, чем белые или черные квадратики вокруг ваших изображений PNG в IE6.

Если вы конвертируете PNG (или GIF) в JPG, скорее всего, вы должны скопировать окончательное изображение на другое изображение, заполненное белым, с использованием imagecopy ( $image – любое изображение, уже созданное с помощью GD):

Что такое код imagealphablending

Однако, если я сделаю это «правильным» способом, вся область прозрачности станет черной в JPEG. Это похоже на работу (JPEG с белым фоном на прозрачных областях) в моих тестах:

Может кто-нибудь, пожалуйста, просветите меня по этому вопросу?

Вы можете попробовать это для себя. Создайте прозрачный PNG и сохраните его с оранжевым или розовым цветом фона. Ваш второй пример должен показать этот цвет.

Кстати, цветовой трюк в формате PNG хорош для изображений IE6. IE6 не поддерживает прозрачные PNG, поэтому он будет отображать их с любым фоновым цветом, с которым вы их сохранили. При сохранении прозрачных PNG сохраните их с тем же цветом фона, что и на вашем сайте. Это будет выглядеть лучше, чем белые или черные квадраты вокруг ваших изображений PNG в IE6.

Что такое код imagealphablending

imagealphablending — устанавливает режим смешивания для изображения.

Описание

int imagealphablending (resource image, bool blendmode)

imagealphablending() допускает два различных режима прорисовки truecolor-изображений. В режиме blending/смешения — alpha-канал компонента цвета, предоставляемого всем функциям прорисовки, таким как imagesetpixel() , определяет, насколько сильно просвечивает цвет нижележащего слоя. Как результат — gd автоматически смешивает существующий цвет в этой точке с цветом прорисовки и сохраняет результат в изображении. Результирующий пиксел является непрозрачным. В режиме non-blending — цвет прорисовки копируется буквально с информацией alpha-канала, замещая пиксел назначения. Режим смещения недоступен при рисовании палитровых изображений. Если blendmode TRUE , то режим смешения включён, иначе — отключён.

Примечание: эта функция была введена в PHP 4.0.6 и требует GD 2.0.1.

imagealphablending

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagealphablending — Задание режима сопряжения цветов для изображения

Описание

imagealphablending() позволяет использовать режим сопряжения цветов для truecolor-изображений при рисовании. В режиме сопряжения альфа компонент цвета, который передается всем функциям рисования, вроде imagesetpixel() , определяет то, насколько сильно цвет нижележащего слоя будет просачиваться через накладываемое изображение. В результате, gd автоматически сопрягает существующий цвет в каждой точке с цветом рисуемого поверх изображения и сохраняет результат сопряжения в изображении. Пикселы, подвергшиеся сопряжению, не обладают свойством прозрачности. В режиме без сопряжения цвет рисуемого поверх изображения пиксела буквально копируется вместе со своим альфа компонентом, заменяя пиксел в исходном изображении. Режим сопряжения не доступен при рисовании на палитровых изображениях.

Список параметров

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor() .

Включить режим сопряжения или нет. Включен ( TRUE ) по умолчанию для truecolor-изображений, для всех остальных по умолчанию выключен ( FALSE ).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagealphablending()

// Создание изображения
$im = imagecreatetruecolor ( 100 , 100 );

// Включение режима сопряжения цветов
imagealphablending ( $im , true );

// Рисуем прямоугольник
imagefilledrectangle ( $im , 30 , 30 , 70 , 70 , imagecolorallocate ( $im , 255 , 0 , 0 ));

// Вывод
header ( ‘Content-type: image/png’ );

imagepng ( $im );
imagedestroy ( $im );
?>

Примечания

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

PHP / GD ImageSaveAlpha и ImageAlphaBlending

Я использую GD для изменения размера и преобразования изображений, однако во время тестов я обнаружил странное поведение при преобразовании прозрачных PNG в JPEG. Согласно инструкции ImageAlphaBlending () включен по умолчанию, но для того, чтобы сохранить прозрачность, я должен установить для ImageSaveAlpha () значение true (что, в свою очередь, требует, чтобы я установил ImageAlphaBlending () в false). Таким образом, правильный путь должен быть:

Однако, если я делаю это «правильным» образом, вся область прозрачности становится черной в JPEG. Это похоже на работу (JPEG с белым фоном на прозрачных областях) в моих тестах:

Может кто-нибудь, пожалуйста, просветите меня по этому вопросу?

2 ответа

Это, вероятно, зависит от вашего PNG. Файл PNG может содержать цвет фона, который можно использовать, когда прозрачность не работает. Ваш PNG, вероятно, имеет белый фон. Когда вы устанавливаете imageaplhablending в true, он выбирает цвет фона из вашего PNG и использует его при записи JPEG. Когда вы устанавливаете его в false, он выбирает значение по умолчанию для GD, которое является черным.

Вы можете попробовать это для себя. Создайте прозрачный PNG и сохраните его с оранжевым или розовым цветом фона. Ваш второй пример должен показать этот цвет.

Кстати, цветовой трюк в формате PNG хорош для изображений IE6. IE6 не поддерживает прозрачные PNG, поэтому он будет отображать их с любым фоновым цветом, с которым вы их сохранили. При сохранении прозрачных PNG сохраните их с тем же цветом фона, что и на вашем сайте. Это будет выглядеть лучше, чем белые или черные квадраты вокруг ваших изображений PNG в IE6.

Илон Маск рекомендует:  Var переменные
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL