PHP.mk документација

imagecreatefrompng

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.imagecreatefrompng.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.imagecreatefrompng.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
imagecreatefrompng

Референца за `function.imagecreatefrompng.php` со подобрена типографија и навигација.

function.imagecreatefrompng.php

imagecreatefrompng

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

imagecreatefrompngКреирај нова слика од датотека или URL

= NULL

imagecreatefrompng(string $filename): GdImage|false

imagecreatefrompng() враќа идентификатор на слика што ја претставува сликата добиена од даденото име на датотека.

Совети

URL може да се користи како име на датотека со оваа функција ако fopen обвивки се овозможени. Погледнете fopen() за повеќе детали за тоа како да го специфицирате името на датотеката. Погледнете го Поддржани протоколи и обвивки за линкови до информации за тоа какви способности имаат разните обвивки, белешки за нивната употреба и информации за сите предодредени променливи што може да ги обезбедат.

Параметри

filename

Патека до PNG сликата.

Вратени вредности

Враќа објект од слика при успех, false при грешки.

Дневник на промени

Верзија = NULL
8.0.0 При успех, оваа функција враќа GDImage инстанца сега; претходно, а resource .

Примери

Пример #1 Пример за справување со грешка при вчитување на PNG

<?php
function LoadPNG($imgname)
{
/* Attempt to open */
$im = @imagecreatefrompng($imgname);

/* See if it failed */
if(!$im)
{
/* Create a blank image */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

/* Output an error message */
imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}

return
$im;
}

header('Content-Type: image/png');

$img = LoadPNG('bogus.image');

imagepng($img);
?>

Горниот пример ќе прикаже нешто слично на:

imagecreatefrompng() example

Белешки од корисници 4 белешки

Анонимен
21 години пред
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.

<?php
$imgPng = imageCreateFromPng($strImagePath);
imageAlphaBlending($imgPng, true);
imageSaveAlpha($imgPng, true);

/* Output image to browser */
header("Content-type: image/png");
imagePng($imgPng); 
?>
sageptr на gmail точка com
пред 4 години
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

<?php

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;
}

?>
marcos at assl-site dot net
19 години пред
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 1000x1000 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']);

Note that for JPEG the requirements are not the same:
http://es2.php.net/manual/en/function.imagecreatefromjpeg.php#60241

2-Use somthing like: 
$new_limit=memory_get_usage() + $required_memory;
ini_set("memory_limit", $new_limit);

4-ini_restore ("memory_limit");
admin at wdfa dot co dot uk
пред 16 години
When using imagecreatepng with alpha blending you will lose the blending.

To over come this use something like the following
<?php
$dstimage=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.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.