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