Php сделать прозрачный фон

imagecolortransparent

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolortransparent — Определяет цвет как прозрачный

Описание

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

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

Список изменений

ВерсияОписание
8.0.0image теперь ожидает экземпляр GdImage ; ранее ожидался ресурс ( resource ).
8.0.0color теперь допускает значение null.

Примеры

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

Результатом выполнения данного примера будет что-то подобное:

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Примечания

Прозрачность копируется только функцией imagecopymerge() и для truecolor-изображений. В случае использования функции imagecopy() или палитрового изображения значение альфа компонента не копируется.

Прозрачный цвет является свойством изображения, прозрачность не является свойством цвета. Если вы задали цвет как прозрачный, некоторые области изображения этого цвета нарисованные ранее станут прозрачными.

User Contributed Notes 28 notes

I’ve made a very simple script that will retain transparency of images especially when resizing.

NOTE: Transparency is only supported on GIF and PNG files.

$new_image = image resource identifier such as returned by imagecreatetruecolor(). must be passed by reference
$image_source = image resource identifier returned by imagecreatefromjpeg, imagecreatefromgif and imagecreatefrompng. must be passed by reference

Sample Usage: (resizing)

Pay attention, that some GIF images may not include a transparent color. A good example of forced transparency in resized GIF image was given by markglibres at yahoo dot com 29-Mar-2009 02:48. But sometimes the transparent color in GIF images can be not set. The problem is, that the color you force to be transparent can be used in the original GIF as opaque and you will loose that color in resized image. The solution is not to use some default transparent color and to leave the resized image without transparent color (the same as original GIF). I used (nearly) the following code to make resized GIF images trnsparent only when the transparency is needed:

Only one color may be transparent in one image. The last call to imagecolortransparent will be the color that is set to transparent.

I am processing button images that have a slightly different fill color than the background color outside the border of the button. I was hoping that I could just make both of those colors transparent and solve the problem.

Hope this tidbit of info will save you some time.

This script creates transparency for a unspecific RBG color for an already created PNG image. It also includes script of overlay text that does not get ruined in the process.

How to center your text both vertically and horizontally in a GD image:

a simple way to check png with alpha channel reading IHDR PNG HEADER

$readPng = fopen ($argSourceImagePath, «rb»);
$readAlp = fread ($readPng, 52);
fclose ($readPng);

if(substr(bin2hex($readAlp),50,2) == «04» || substr(bin2hex($readAlp),50,2) == «06»)
echo(«Png has alpha»);

Current PHP Version: 4.4.4
[GD Version] => bundled (2.0.28 compatible)

To resize or copy image (gif [with gd>=2.0.28] or png) with transparency.
-Take current transparency color
-create a new image with palette like old one and fill new image with transparent color
-set transparent color
-copy resized image

If you are looking for a blank PNG, you don’t need to generate it every time. Just define this constant:

define(«BLANK_PNG», «iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m».
«dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqSURBVHjaYvz//z/DYAYAAcTEMMgBQAANegcCBNCg».
«dyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAAN».
«egcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQ».
«oHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAA».
«DXoHAgTQoHcgQAANegcCBNCgdyBAgAEAMpcDTTQWJVEAAAAASUVORK5CYII=»);

I would like to share with others how to make PNG image transparent. I have tried almost all examples described on that page but none of them work for me. Finally I found the solution, but there is a bit cheating 🙂 but who cares if it works?

So when I tried to allocate white (as an example) color as a transparent, it worked randomly (lets say 1 in 10 examples). That in turn pushed me to the idea that the problem is that white color is already exist in color palette. So if I try to add another white color with DIFFERENT index as a transparent, that will cause error.

So I found the solution, instead of adding new index, I searched for the white color’s index in the color palette and made it defined as transparent 🙂 The best idea is to use not a white but left bottom corner as transparent color (I guess that s standard for some other software languages).

I found out the hard way that for two png’s with alpha transparency to correctly stack you need to explicitly re-enable alpha blending.

$img=imagecreatetruecolor($dx,$dy);
$img1=imagecreatefrompng($png1); //first layer
$img2=imagecreatefrompng($png2); //second layer (smaller image)

Well 8-bit gif and png files can have multiple transparent colors, so detecting the transparent color by manually looking into the file or using imagecolortransparent and using the detected rgb color as the background color when imagecopy’ing (or other image copying functions) on a true color image will not work. The only means of getting the transparent pixels to appear is to copy the pixel colors one by one to a new true color image. Here’s some code i wrote to do this.

Sorry, below should be:

note: file_get_contents isn’t reading the whole file in this instance, just 1 byte on its own and that’s it, so you can be assured this is fast and safe.

@wesley gunn:
Thank you very, very much for the code to determine if a PNG is 24 or 32-bit 🙂
Here’s an improved version in one line without using a file-handle

Источник

php-gd-прозрачность изображения

День добрый.
Подскажите пожалуйста, а то ломаю голову уже третий час. Можно ли полноцветное изображение сделать полупрозрачным?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фонДобавление изображения путем php не зная названия изображения
есть изображения в папке «images» как выложить все изображения на сайт не зная названия картинок.

Прозрачность bmp изображения
Добрый день,можете дать информацию о прозрачности изображений в bmp файле,также необходима.

Здесь всего один цвет меняет уровень прозрачности, а мне надо чтобы прозрачной была все изображение

Добавлено через 1 минуту

Обработка должна быть только на стороне сервера.

Добавлено через 3 минуты
Вобщем-то кое-какой прогресс имеется. При помощи imagecopymerge можно скопировать изображение в полупрозрачном состоянии. Но тут еще один косячок. При создании изображения функцией imagecreatetruecolor изображение окрашивается в черный цвет. Как убрать этот черный цвет, чтобы вместо него была прозрачность?

Добавлено через 2 часа 6 минут
Всем спасибо за внимание получилось вот так:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Прозрачность изображения увеличивается с помощью TrackBar, но не уменьшается
Есть pictureBox, в котором нужно изменить прозрачность с помощью trackBar’а. Программа работает, но.

Как убрать прозрачность изображения, вставленного в колонтитул?
Здравствуйте. Скажите, можно ли убрать прозрачность, накладываемую на все, что помещается в.

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фонУбрать прозрачность изображения в указанном фрагменте картинки
Помогите разобраться с проблемой, указанной на картинке! Спасибо!

Источник

Сохранение прозрачности PNG в GD2 + PHP

При работе с изображениями PNG-24 с альфа-каналом, при изменении размера или после других манипуляций с помощью библиотеки GD2 пропадает прозрачность.

Изображение без сохранения alpha-канала

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Изображение с сохранение alpha-канала

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Для решения этой проблемы к ресурсу(в примере — код на PHP) перед любыми манипуляциями с картинкой, фотографией применяем две функции: imageAlphaBlending и imageSaveAlpha.

Пример

Скрипт(неуниверсальный, рассчитан на изменение размера только изображения PNG).

Вот и всё, оказалось всё просто.

Небольшие проблемы

В процессе использования возникла только одна проблема. Не все png-fix для IE6 фиксили уменьшенные с помощью этого скрипта изображения. На практике привык использовать DD_belatedPNG, но он не помог. Помог IE PNG Fix 2.0 Alpha 4. Вообще последний выигрывает в тех случаях, когда полно всяких извращений с пнгешками( как то изменения размера средствами html/css, навешивания событий на такие изображения и прочее). Я говорю про извращения, так как для немощного IE 6 с применением фикса это всё сложно. Появляются глюки. Надо, когда время будет, сравнить все известные мне png фиксилки.

Комментарии с сайта

Спасибо, очень интересная статья. Удобный способ, и главное без потери качества PNG картинки. Автор РЕСПЕКТ.

// Говорим браузеру о типе изображения. Тип — PNG
header(«Content-Type: image/png»);

Нужны ли эти строчки если после уменьшения размера картинка не выводится в браузер, а просто сохраняется на сервере?

нет, при сохранении файла на сервере эта строка не нужна
этот код
header(«Content-Type: image/png»);
просто устанавливает дополнительную информацию в заголовке ответа, отсылаемого веб-сервером, чтобы браузер смог понять, что делать с полученным контентом

Посмотрел код. Стало интересно 🙂 У вас вообще весь прозрачный фон заменялся чёрным цветом?
А с применением всё стало работать? Но только качество ухудшилось или то же не работало? Насчёт качества, не знаю, при уменьшении изображения оно всегда теряется, но конечно не до безобразия.
А насчёт приведённого Вами кода, вообще он работающий, если немного подправить. Когда запустил ваш код, у меня из png с прозрачными местами сгенерировался чёрный прямоугольник 🙂
Немного подправил, заработало, вот исправленный мною код

$filepath = ‘1.png’;
$output = imagecreatefrompng($filepath); //$filepath – путь к png
$w_output = 100; //ширина после уменьшения

$h_input = imagesy($output); // y – исходного
$w_input = imagesx($output); // x – исходного

Может что то ещё поменял. Сравните ваш и мой код. Когда включил отображение ошибок error_reporting(E_ALL), там столько полетело ошибок 🙂
У меня этот код работает.

ImageDestroy($res_image);
ImageDestroy($sun_image);
ImageDestroy($cloud_image);

здравствуйте, извините, но сейчас нет времени проверить на практике Ваш скрипт,
думаю надо не imagealphablending($res_image, true);, а imagealphablending($res_image, false);

ещё вы зачем то под конец используете imagejpeg, а не imagepng
ещё перед выводом в браузер не указываете тип контента

я тут поигрался с imagealphablending, с разными параметрами
короче у меня работает следующий скрипт

ну размеры изображения свои подставите, у меня просто были исходные по 100 на 100 пикселей, итоговый на выходе сделал 60 на 60 пикселей

Источник

Создание прозрачного фона в GD

черный цвет во всем изображении исчез. хотя в мануале написано, что только для ранее наклееных изображений это работает. или я не так понял.

Прозрачный цвет является свойством изображения, прозрачность не является свойством цвета. Если вы задали цвет как прозрачный, некоторые области изображения этого цвета нарисованные ранее станут прозрачными.

если черный цвет сменить на белый, белый тоже стирается и остаются непонятные разводы. что я могу делать не так, либо в чем моя ошибка? если кто знает другой способ, прошу подсказать. GD конфиг:

GD Supportenabled
GD Version2.0
PNG Supportenabled
libPNG Version1.2.46

Создание прозрачного фона в тексте в Unity3D
Здравствуйте, возможно ли создать в Unity3d текст фон которого будет прозрачным, т.е внутри букв.

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фонВместо прозрачного фона вставляется черный цвет
Добрый день. Вот такая проблема вместо прозрачного фона вставляется черный цвет. Скрин прикрепил.

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фонПропадание прозрачного фона при плавном перемещении объекта
на форме с фоновой картинкой есть pictureBox, который на клик плавно по событию таймера.

Источник

Как заменить однородный фон прозрачным с помощью Imagemagick

Бывает, что на сайт загружаются картинки с однородным фоном и возникает потребность в автоматической замене его (фона) на прозрачный.

Часто такая фича нужна для фотографий товаров в интернет-магазине, картинок, которые накладываются на корпоративный фон и других фоток, не портящих дизайн сайта. Вырезать каждую фотку вручную фотошопом довольно грустно, но есть php-методы, с помощью которых это можно «поставить на поток».
Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Как это работает

Функция попиксельно ищет где заканчивается однородный цвет. После того, как все координаты вычислены — функция просто вырезает все, что находится снаружи.

Замена белого фона прозрачным возможна только если выходная картинка сохранена в формате PNG или GIF. Подойдут и новые форматы WebP и BPG с поддержкой прозрачности.

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Перед удалением фона всегда лучше ресайзить большую картинку. Если сделать это после — границы могут исказиться.

Замена фона, пример на bash

Перед обрезкой стандартный JPEG конвертируется в PNG. В lossy JPEG’е фон не будет однородным. Соседние пиксели обычно незначительно отличаются по цвету. Например: белый, светло-серый, светло-голубой. Аргумент fuzz устанавливается в значение >0, чтобы разрешить функции считать соседние цвета одинаковыми.

Замена фона, пример на PHP

Пример обрезки белого фона на картинке (входной файл: image.jpg, выходной — trimmed.png):

Оператор borderImage рисует вокруг картинки рамку 1х1 в цвет фона, после чего оператор trimImage обрезает ее вместе с рамкой.

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Внимание! Оператор trimImage работает, если Imagick скомпилирован с ImageMagick версии не ниже 6.2.9.

Как сделать фон однородным

Похожим способом можно заменить неоднородный фон на однородный при конвертации из JPEG в PNG:

В этом примере — каждый пиксель фона зальется одним цветом — пикселя с координатами (0;0).

Php сделать прозрачный фон. Смотреть фото Php сделать прозрачный фон. Смотреть картинку Php сделать прозрачный фон. Картинка про Php сделать прозрачный фон. Фото Php сделать прозрачный фон

Много примеров работы кода

Как работает обрезка фона с помощью библиотеки Imagick можно проверить тут. Онлайн-инструмент заменяет любой однородный фон на прозрачный, как с этим яблочком. Вот пример с черным фоном и сложными формами для трима (волосы). Конечно, может оставаться небольшая белая рамка. Но выглядит довольно прилично. Даже кошачьи усы вырезает на ура.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *