- imagecreatefrompng
- Описание
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- User Contributed Notes 7 notes
- Imagecreatefrompng php не работает
- Не работает функция imagecreatefrompng
- imagecreatefromjpeg and similar functions are not working in PHP
- 12 Answers 12
- imagecreatefrompng не работает
- 2 ответа
- Работа с расширением файла
- Работа с процессом сохранения
imagecreatefrompng
(PHP 4, PHP 5, PHP 7, PHP 8)
imagecreatefrompng — Создаёт новое изображение из файла или URL
Описание
imagecreatefrompng() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.
Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen() . Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.
Список параметров
Путь к изображению PNG.
Возвращаемые значения
Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.
Список изменений
| Версия | Описание |
|---|---|
| 8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage ; ранее возвращался ресурс ( resource ). |
Примеры
Пример #1 Пример обработки ошибки при загрузке PNG
function LoadPNG ( $imgname )
<
/* Пытаемся открыть */
$im = @ imagecreatefrompng ( $imgname );
/* Если не удалось */
if(! $im )
<
/* Создаём пустое изображение */
$im = imagecreatetruecolor ( 150 , 30 );
$bgc = imagecolorallocate ( $im , 255 , 255 , 255 );
$tc = imagecolorallocate ( $im , 0 , 0 , 0 );
imagefilledrectangle ( $im , 0 , 0 , 150 , 30 , $bgc );
/* Выводим сообщение об ошибке */
imagestring ( $im , 1 , 5 , 5 , ‘Ошибка загрузки ‘ . $imgname , $tc );
>
header ( ‘Content-Type: image/png’ );
$img = LoadPNG ( ‘bogus.image’ );
imagepng ( $img );
imagedestroy ( $img );
?>
Результатом выполнения данного примера будет что-то подобное:
User Contributed Notes 7 notes
If you’re trying to load a translucent png-24 image but are finding an absence of transparency (like it’s black), you need to enable alpha channel AND save the setting. I’m new to GD and it took me almost two hours to figure this out.
= imageCreateFromPng ( $strImagePath );
imageAlphaBlending ( $imgPng , true );
imageSaveAlpha ( $imgPng , true );
/* Output image to browser */
header ( «Content-type: image/png» );
imagePng ( $imgPng );
?>
I had the same problem as jboyd1189 at yahoo dot com but I solve d it allocating more memory dynamically.
Usually the memory_limit var on php.ini is set to 8M. Unfortunately, the required amount of memory to manage a PNG image about 1000×1000 could be bigger !
The approach I used to solve the problem is:
1-Calculate the memory required by the image
2-Set the new memory_limit value
3-Create the PNG image and thumbnail
4-Restore the original value
1-The following value works for me:
$required_memory = Round($width * $height * $size[‘bits’]);
2-Use somthing like:
$new_limit=memory_get_usage() + $required_memory;
ini_set(«memory_limit», $new_limit);
Because gd and imagick do not support animated PNG (at this moment), i wrote a simple function to determine if given PNG is APNG or not. It does not validate PNG, only checks whenever «acTL» chunk appears before «IDAT» like the specification says: https://wiki.mozilla.org/APNG_Specification
function is_apng ( string $filename ): bool
<
$f = new \ SplFileObject ( $filename , ‘rb’ );
$header = $f -> fread ( 8 );
if ( $header !== «\x89PNG\r\n\x1A\n» ) <
return false ;
>
while (! $f -> eof ()) <
$bytes = $f -> fread ( 4 );
if ( strlen ( $bytes ) 4 ) <
return false ;
>
$length = unpack ( ‘N’ , $bytes )[ 1 ];
$chunkname = $f -> fread ( 4 );
switch ( $chunkname ) <
case ‘acTL’ :
return true ;
case ‘IDAT’ :
return false ;
>
$f -> fseek ( $length + 4 , SEEK_CUR );
>
return false ;
>
When using imagecreatepng with alpha blending you will lose the blending.
To over come this use something like the following
= imagecreatetruecolor ( $width , $height );
$srcimage = imagecreatefrompng ( $src );
imagecopyresampled ( $dstimage , $srcimage , 0 , 0 , 0 , 0 , $width , $height , $width , $height );
?>
Where $width and $height are the width and height of the $src image.
This will create a true colour image then copy the png image to this true colour image and retain alpha blending.
Источник
Imagecreatefrompng php не работает
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Источник
Не работает функция imagecreatefrompng
Только вот мне выдает ошибку «imagecreatefrompng(bg.png): failed to open stream: No such file or directory. »
И после этого лезет куча ошибок, связанных с функциями из этих функций. С чем это может быть связано?
проверил GD, думал с ним проблема, но, кажется, все нормально. Вот что выдает var_dump:
array(13) < ["GD Version"]=>string(26) «bundled (2.1.0 compatible)» [«FreeType Support»]=> bool(true) [«FreeType Linkage»]=> string(13) «with freetype» [«T1Lib Support»]=> bool(false) [«GIF Read Support»]=> bool(true) [«GIF Create Support»]=> bool(true) [«JPEG Support»]=> bool(true) [«PNG Support»]=> bool(true) [«WBMP Support»]=> bool(true) [«XPM Support»]=> bool(true) [«XBM Support»]=> bool(true) [«WebP Support»]=> bool(true) [«JIS-mapped Japanese Font Support»]=> bool(false) >
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Imagecreatefrompng() — PNG images
Здравствуйте, прошу помощи, имеются 2 изображения, куски можете видеть ниже, но функция.
imagecreatefrompng работа с уже открытой картинкой
Здравствуйте, у меня есть функция которая работает с изображением открывая его при помощи.
imagecreatefrompng и замена прозрачности на белый фон
$im = imagecreatefrompng(‘../images/buttons/item.png’); imagepng($im); Заменяет прозрачность.
Теперь мне выводится огромная куча каких-то неразборчивых символов.
И еще ошибка: Warning: Cannot modify header information — headers already sent by (output started at C:\xampp\htdocs\copyright\index.php:122) in C:\xampp\htdocs\copyright\php\counter.php on line 44
Видимо, из-за вот этого
Функция imagecreatefrompng создаёт виртуальный объект image из файла который в параметре этой функции, в дальнейшем этот виртуальный image можно использовать в других функциях для редактирования (изменения) того что в этом image. Т.е. например у Вас есть картинка, вы её хотите дополнить текстом, вы создаёте image с помощью этой функции и другими функциями добавляете текст, затем вы либо сохраняете изменённую картинку либо выводите её сразу в вывод. Можно вообще без функции imagecreatefrompng создать image и нарисовать там что-то своё.
Добавлено через 1 минуту
Да хеадеры у Вас уже отправлены, зачем их повторно отправлять?
Источник
imagecreatefromjpeg and similar functions are not working in PHP
I’ve searched for this and the solutions provided in past questions are completely incomprehensible to me. Whenever I run functions like imagecreatefromjpeg , I get this:
Fatal error: Call to undefined function imagecreatefromjpeg() .
I’m working on a new install of PHP; my last installation never had this problem. I don’t get what’s going on.
12 Answers 12
Install GD Library
Which OS you are using?
In Ubuntu/Mint (Debian based)
You can still get Fatal error: Call to undefined function imagecreatefromjpeg() even if GD is installed.
The solution is to install/enable jped lib:
On Ubuntu:
On CentOS:
If compiling from source add —with-jpeg-dir —with-freetype-dir or —with-jpeg-dir=/usr —with-freetype-dir=/usr .
You must enable the library GD2.
Find your (proper) php.ini file
Find the line: ;extension=php_gd2.dll and remove the semicolon in the front.
The line should look like this:
Then restart apache and you should be good to go.
If you are like me and you are using one of the PHP Docker images as your base, you need to add the gd extension using different instructions then what’s discussed above.
For the php:7.4.1-apache image you need to add in your Dockerfile :
These dev packages are needed for compilation of the GD php extension. For me this resulted in activation of GD with PNG and JPEG support in PHP.
x.x is the versión php.
For php 7 on Ubuntu:
After installing php5-gd apache restart is needed.
In CentOS, RedHat, etc. use below command. don’t forget to restart the Apache. Because the PHP module has to be loaded.
after
systemctl restart php-fpm
the Gd library works.
As mentioned before, you might need GD library installed.
On a shell, check your php version first:
php -v
Then install accordingly. In my system (Linux-Ubuntu) it’s php version 7.0:
sudo apt-get install php7.0-gd
Restart your webserver:
systemctl restart apache2
You should now have GD library installed and enabled.
I spent so much time trying to figure this out on Windows after installing PHP Version 8.0.11 .
I created this phpinfo.php file to check whether GD was loaded:
If it returns gd NOT loaded then ensure that in your php.ini file you have the following unchecked:
Further down they’ll be a section for extension_dir on Windows you need to uncheck the following:
Источник
imagecreatefrompng не работает
Я пытаюсь создать миниатюры изображений, но обнаружил, что только изображения JPG могут быть преобразованы в миниатюры с помощью приведенного ниже кода; он не работает с PNG и GIF. Что я делаю не так?
2 ответа
Я создаю плакат с помощью PHP и хочу добавить на него цифры. Я использую следующий код, чтобы добавить их: $src1 = imagecreatefrompng(m2.png); $widthsrc=0; $heightsrc=0; list($widthsrc, $heightsrc, $typesrc, $attrsrc) = getimagesize(m2.png); $background = imagecolorallocate($src1, 0, 0, 0);.
На моем локальном хосте этот код работает хорошо: $im = imagecreatefrompng(‘BBcode.png’); Но когда я использую тот же код на сервере $im = imagecreatefrompng(‘http://lazertag.elitno.net/drupal/BBcode.png’); Я получил ошибку following: Предупреждение.
Проблема, с которой вы столкнулись, связана с этой строкой:
PHP imagejpeg сохранит изображение как Jpeg.
Что вам нужно, так это использовать соответствующую функцию для сохранения каждого типа файлов. Также вам необходимо контролировать расширение типа выходного файла, если это не файл Совместной группы фотографических экспертов , .jpeg не будет присвоен.
Работа с расширением файла
Есть несколько хороших примеров в комментариях для PHP image_type_to_extension !
Работа с процессом сохранения
imagewbmp
imagewbmp() выводит или сохраняет версию WBMP данного изображения.
imagegif
imagegif() создает файл GIF в файле filename из изображения image.
imagepng
imagepng — Вывод изображения PNG либо в браузер, либо в файл.
Источник