Ben mahsul PHP bir görüntü gibi ve dosyayı kaydetmek istiyorum. Ben senin GD kütüphanesini kullanmak gerekiyordu biliyorum ama emin değilim. Herhangi bir fikir?
Teşekkürler
Sen imagecopy
, bir görüntünün gerekli bölümünü kırpmak için kullanabilirsiniz. Komut şöyle:
imagecopy (resource $ dst_im - resim nesnesi, kaynak $ src_im - x Hedef görüntü (kullanım 0), int $ dst_y koordinat - - Hedef görüntü, $ dst_x int y (kullanım 0), int $ src_x hedef görüntüde koordinat - x kırpmak istediğiniz kaynak görüntü, int $ src_y koordinat - y kırpmak istediğiniz kaynak görüntüde koordinat, int $ src_w - kırpma genişlik, int $ src_h - kırpma yükseklik)
Dan PHP.net Kod - Bir 80x40 piksel görüntü, bir kaynak görüntüden kırpılmış
<?php
// Create image instances
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);
// Copy
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);
// Output and free from memory
header('Content-Type: image/gif');
imagegif($dest);
imagedestroy($dest);
imagedestroy($src);
?>
Eğer GD yöntemleri bir arada kullanmanız gerekir, ve imagecopyresampled
yönteminin PHP'nin belgelerine "Örnek # 1" bakarsanız, bu nasıl kırpmak ve çıkış bir görüntü gösteren GD kullanarak bir görüntüyü kırpmak için , sadece bir dosyaya çıkış yakalamak ve yazmak için o bazı kod eklemeniz gerekir ...
http://us2.php.net/manual/en/function.imagecopyresampled.php
Image Magick, sunucu üzerinde yüklü ise, doğrudan PHP'nin exec
yöntemi (veya benzeri) kullanılarak erişilebilir veya PHP {yükleyebilirsiniz dahil olmak üzere diğer seçenekleri de vardır [(2 daha kaliteli görüntü verir ve, benim görüşüme göre, sezgisel ve çalışmak için esnek biraz daha fazla)]} uzantısı.
Son olarak, oldukça basit bir arayüze sahip ve Imagemagick ve GD dahil olmak üzere, sunucu üzerinde ne bağlı olarak birden fazla seçenekleri ile çalışabilir açık kaynak PHPThumb sınıf kütüphanesi, kullandım.
I use this script in some projects and it's pretty easy to use: http://shiftingpixel.com/2008/03/03/smart-image-resizer/
Betik (2005/11/24 beri hangi - henüz bu sürümüne yükseltme zamanı) PHP 5.1.0 gerektirir ve (nadiren iyi Web host eksik) GD.
İşte HTML bu kullanımı bir örnek:
<img src="/image.php/coffee-bean.jpg?width=200&height=200&image=/wp-content/uploads/2008/03/coffee-bean.jpg" alt="Coffee Bean" />
Bu fonksiyon, görüntü en boy oranını koruyarak görüntü kırpma :)
function resize_image_crop($image, $width, $height)
{
$w = @imagesx($image); //current width
$h = @imagesy($image); //current height
if ((!$w) || (!$h)) { $GLOBALS['errors'][] = 'Image couldn\'t be resized because it wasn\'t a valid image.'; return false; }
if (($w == $width) && ($h == $height)) { return $image; } //no resizing needed
$ratio = $width / $w; //try max width first...
$new_w = $width;
$new_h = $h * $ratio;
if ($new_h < $height) { //if that created an image smaller than what we wanted, try the other way
$ratio = $height / $h;
$new_h = $height;
$new_w = $w * $ratio;
}
$image2 = imagecreatetruecolor ($new_w, $new_h);
imagecopyresampled($image2,$image, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
if (($new_h != $height) || ($new_w != $width)) { //check to see if cropping needs to happen
$image3 = imagecreatetruecolor ($width, $height);
if ($new_h > $height) { //crop vertically
$extra = $new_h - $height;
$x = 0; //source x
$y = round($extra / 2); //source y
imagecopyresampled($image3,$image2, 0, 0, $x, $y, $width, $height, $width, $height);
} else {
$extra = $new_w - $width;
$x = round($extra / 2); //source x
$y = 0; //source y
imagecopyresampled($image3,$image2, 0, 0, $x, $y, $width, $height, $width, $height);
}
imagedestroy($image2);
return $image3;
} else {
return $image2;
}
}