You can use this function in combination with imagecreatefromstring() to clone the gd resource with minimum fuss (no writing to tmp file):
<?php
function cloneGd($gd)
{
ob_start();
imagegd2($gd);
return imagecreatefromstring(ob_get_clean());
}
?>
imagegd2
(PHP 4 >= 4.0.7, PHP 5)
imagegd2 — Tarayıcıya veya bir dosyaya bir GD2 resmi çıktılar
Açıklama
$resim
[, string $dosyaismi
[, int $parça_boyutu
[, int $tür
]]] )
Bir GD2 resmini dosyaismi ile belirtilen dosyaya
çıktılar.
Değiştirgeler
-
resim -
imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.
-
dosyaismi -
GD2 resminin kaydedileceği dosyanın yolu. Belirtilmezse veya
NULLverilirse ham resim akımı doğrudan tarayıcıya çıktılanır. -
parça_boyutu -
Parça boyutu.
-
tür -
IMG_GD2_RAWveyaIMG_GD2_COMPRESSEDolabilir.IMG_GD2_RAWöntanımlıdır.
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnekler
Örnek 1 - Bir GD2 resminin çıktılanması
<?php
// Bir tuval oluşturup üzerine bir metin çizelim
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
// Resmi çıktılayalım
imagegd2($im);
// Belleği serbest bırakalım
imagedestroy($im);
?>
Örnek 2 - Bir GD2 resminin kaydedilmesi
<?php
// Bir tuval oluşturup üzerine bir metin çizelim
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
// gd2 resmini kaydedelim
// GD2 resimlerin dosya biçemi .gd2'dir.
// http://www.libgd.org/GdFileFormats adresine bakınız
imagegd2($im, 'simple.gd');
// Belleği serbest bırakalım
imagedestroy($im);
?>
Notlar
Bilginize: Bu işlev GD'nin 2.0.1 veya sonraki sürümlerini gerektirir (2.0.28 veya sonraki sürümler önerilir).
Bilginize:
GD2 biçemi resim parçalarının hızlı yüklenebilmesi için kullanılan bir resim biçemidir. GD2 biçeminin sadece GD2 uyumlu uygulamalarda kullanılabileceğine dikkat ediniz.
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 4.3.2 |
parça_boyutu ve tür
değiştirgeleri eklendi.
|
yes, the gd2 file format does improve the speed of image creations as the data-setup is designed to be native for the GD function - ie, the image doesn't have to be converted to a usable format prior to processing.
you may also note that the newer gd2 format creates much smaller size files than the older imagegd function, certainly for images involving chunks of single colours anyway. you'll probably find this function most useful for saving overlay images or background images used in larger image creation scripts.
to read a ping or jpeg image (.png / .jpg) and save a .gd2 version to server...
$img = $_GET['img'];
if(file_exists($img))
{
$dim = getimagesize($img);
$cr = ($dim[2] < 4) ? ($dim[2] < 3) ? ($dim[2] < 2) ? NULL : imagecreatefromjpeg($img) : imagecreatefrompng($img) : Null;
if($cr !== NULL)
{
imagegd2($cr,substr($img,0,strrpos($img,'.')).'.gd2');
}
}
should save a copy with the same filename and directory using extension .gd2 - which can then be nicely and swiftly read using either imagecreatefromgd2 or imagecreatefromgd2part
