Hi guys,
Im trying to use this code that I found on php.net to create a thumbnail
from an image but it simply displays a black square.
Anyone can tell me what am I doing wrong?
<?
function ImageCopyResamp leBicubic(&$dst , &$src, $dstx, $dsty, $srcx, $srcy,
$w, $h, $zoomX, $zoomY = '') {
if (!$zoomY) $zoomY = $zoomX;
$palsize = ImageColorsTota l($src);
for ($i = 0; $i<$palsize; $i++) {
$colors = ImageColorsForI ndex($src, $i);
ImageColorAlloc ate($dst, $colors['red'], $colors['green'],
$colors['blue']);
}
$zoomX2 = (int)($zoomX/2);
$zoomY2 = (int)($zoomY/2);
$dstX = imagesx($dst);
$dstY = imagesy($dst);
$srcX = imagesx($src);
$srcY = imagesy($src);
for ($j = 0; $j<($h-$dsty); $j++) {
$sY = (int)($j*$zoomY )+$srcy;
$y13 = $sY+$zoomY2;
$dY = $j+$dsty;
if (($sY >= $srcY) or ($dY >= $dstY) or ($y13 >= $srcY)) break 1;
for ($i = 0; $i<($w-$dstx); $i++) {
$sX = (int)($i*$zoomX )+$srcx;
$x34 = $sX+$zoomX2;
$dX = $i+$dstx;
if (($sX >= $srcX) or ($dX >= $dstX) or ($x34 >= $srcX))
break 1;
$c1 = ImageColorsForI ndex($src, ImageColorAt($s rc, $sX,
$y13));
$c2 = ImageColorsForI ndex($src, ImageColorAt($s rc, $sX,
$sY));
$c3 = ImageColorsForI ndex($src, ImageColorAt($s rc, $x34,
$y13));
$c4 = ImageColorsForI ndex($src, ImageColorAt($s rc, $x34,
$sY));
$r = ($c1['red']+$c2['red']+$c3['red']+$c4['red'])/4;
$g = ($c1['green']+$c2['green']+$c3['green']+$c4['green'])/4;
$b = ($c1['blue']+$c2['blue']+$c3['blue']+$c4['blue'])/4;
ImageSetPixel($ dst, $dX, $dY, ImageColorClose st($dst, $r, $g,
$b));
}
}
}
header ("content-type: image/jpeg");
$sourceimg = imagecreatefrom jpeg ("temp.jpg") ;
$destimg = imagecreate (211, 300);
ImageCopyResamp leBicubic($dest img, $sourceimg, 0, 0, 0, 0, 422,600, 211,
300);
imagejpeg ($destimg);
?>
--
Im trying to use this code that I found on php.net to create a thumbnail
from an image but it simply displays a black square.
Anyone can tell me what am I doing wrong?
<?
function ImageCopyResamp leBicubic(&$dst , &$src, $dstx, $dsty, $srcx, $srcy,
$w, $h, $zoomX, $zoomY = '') {
if (!$zoomY) $zoomY = $zoomX;
$palsize = ImageColorsTota l($src);
for ($i = 0; $i<$palsize; $i++) {
$colors = ImageColorsForI ndex($src, $i);
ImageColorAlloc ate($dst, $colors['red'], $colors['green'],
$colors['blue']);
}
$zoomX2 = (int)($zoomX/2);
$zoomY2 = (int)($zoomY/2);
$dstX = imagesx($dst);
$dstY = imagesy($dst);
$srcX = imagesx($src);
$srcY = imagesy($src);
for ($j = 0; $j<($h-$dsty); $j++) {
$sY = (int)($j*$zoomY )+$srcy;
$y13 = $sY+$zoomY2;
$dY = $j+$dsty;
if (($sY >= $srcY) or ($dY >= $dstY) or ($y13 >= $srcY)) break 1;
for ($i = 0; $i<($w-$dstx); $i++) {
$sX = (int)($i*$zoomX )+$srcx;
$x34 = $sX+$zoomX2;
$dX = $i+$dstx;
if (($sX >= $srcX) or ($dX >= $dstX) or ($x34 >= $srcX))
break 1;
$c1 = ImageColorsForI ndex($src, ImageColorAt($s rc, $sX,
$y13));
$c2 = ImageColorsForI ndex($src, ImageColorAt($s rc, $sX,
$sY));
$c3 = ImageColorsForI ndex($src, ImageColorAt($s rc, $x34,
$y13));
$c4 = ImageColorsForI ndex($src, ImageColorAt($s rc, $x34,
$sY));
$r = ($c1['red']+$c2['red']+$c3['red']+$c4['red'])/4;
$g = ($c1['green']+$c2['green']+$c3['green']+$c4['green'])/4;
$b = ($c1['blue']+$c2['blue']+$c3['blue']+$c4['blue'])/4;
ImageSetPixel($ dst, $dX, $dY, ImageColorClose st($dst, $r, $g,
$b));
}
}
}
header ("content-type: image/jpeg");
$sourceimg = imagecreatefrom jpeg ("temp.jpg") ;
$destimg = imagecreate (211, 300);
ImageCopyResamp leBicubic($dest img, $sourceimg, 0, 0, 0, 0, 422,600, 211,
300);
imagejpeg ($destimg);
?>
--
Comment