On-the-fly minik PHP

3 Cevap php

Ben bu ile geldi:

<?php 

$dir = $_GET['dir'];

header('Content-type: image/jpeg'); 

$create = imagecreatetruecolor(150, 150); 
$img = imagecreatefromjpeg($dir); 
imagecopyresampled($create, $img, 0, 0, 0, 0, 150, 150, 150, 150); 

imagejpeg($create, null, 100); 

?>

Bu erişerek çalışır:

http://domain.com/image.php?dir=thisistheimage.jpg

Çalışıyor ... ama çıkış korkunç hangisi:

alt text

Birisi siyah alanı kapsayan 150 x 150 olması görüntü için kodumu düzeltebilirim ...

Teşekkürler.

SOLUTION:

<?php 

$dir = $_GET['dir'];

header('Content-type: image/jpeg'); 

list($width, $height) = getimagesize($dir);

$create = imagecreatetruecolor(150, 150); 
$img = imagecreatefromjpeg($dir); 

$newwidth = 150;
$newheight = 150;

imagecopyresized($create, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($create, null, 100); 

?>

3 Cevap

Son 2 150 orijinal genişlik ve tam boyutlu görüntünün yüksekliği olmalıdır.

Diğerleri önerildiği gibi, son iki parametre resmin orijinal büyüklüğünde olmalıdır.

$ Dir senin dosya ise, getimagesize Resmin orijinal boyutları elde etmek için kullanabilirsiniz.

Siz imagecopyresized veya imagecopyresampled kullanabilirsiniz. Fark imagecopyresampled de daha kaliteli verim olacaktır görüntüyü yeniden örneklemek olurken imagecopyresized kopyalama ve yeniden boyutlandırmak olacaktır.

<?php 

$dir = $_GET['dir'];

header('Content-type: image/jpeg'); 

$create = imagecreatetruecolor(150, 150); 
$img = imagecreatefromjpeg($dir);
list($width, $height) = getimagesize($dir);
imagecopyresampled($create, $img, 0, 0, 0, 0, 150, 150, $width, $height);

imagejpeg($create, null, 100); 

?>