Co do skalowania, to przetestuj sobie ten kod:
<?php
function colordecode($hex){
return $code;
}
function scale($srcImage,$jpgCompression='90',$newX,$newY,$bgColor='FFFFFF'){
switch($ext)
{
case '.gif':
$orgImage = imagecreatefromgif($srcImage);
break;
case '.jpg':
$orgImage = imagecreatefromjpeg($srcImage);
break;
case '.png':
$orgImage = imagecreatefrompng($srcImage);
break;
}
//$orgImage = imagecreatefromjpeg($srcImage);
$orgW = imagesx($orgImage);
$orgH = imagesy($orgImage);
/* $backgroundimage = imagecreatetruecolor($newX,$newY);
$code = colordecode($bgColor);
$backgroundcolor = ImageColorAllocate($backgroundimage, $code[r], $code[g], $code[b]);
ImageFilledRectangle($backgroundimage, 0, 0, $newX, $newY, $backgroundcolor);
$x = imagesx($orgImage);
$y = imagesy($orgImage);
ImageAlphaBlending($backgroundimage, true);
*/
$x=$orgW;
$y=$orgH;
$mlt=$newX/$x;
if ($ny>$newY){
$mlt=$newY/$ny;
}
$dst_img = imagecreatetruecolor($nx,$ny);
imagecopyresampled($dst_img,$orgImage,0,0,0,0,$nx+1,$ny+1,$orgW,$orgH);
$orgImage = $dst_img;
/*
$x = imagesx($orgImage)+1;
$y = imagesy($orgImage)+1;
$sX = ceil(($newX-$x)/2);
$sY =ceil(($newY-$y)/2);
imagecopy($backgroundimage, $orgImage, $sX, $sY, 0, 0, $newX+4, $newY+4);
ImageFilledRectangle($backgroundimage, ($newX-$sX-1), 0, $newX, $newY, $backgroundcolor);
ImageFilledRectangle($backgroundimage, 0, ($newY-$sY-1), $newX, $newY, $backgroundcolor);
$orgImage = $backgroundimage;
*/
return $orgImage;
}
?>