Дело в том, что это, по моему очень древний баг, который тянется со времен ЛДУ, я вроде бы, даже исправление предлагал. У меня, на сайте все прекрасно работает, так, как и заявлено в теме: Вот эта функция, что я делал уже не помню:
function ldu_createthumb($img_big, $img_small, $small_x, $small_y, $keepratio, $extension, $filen, $fsize, $textcolor, $textsize, $bgcolor, $bordersize, $jpegquality)
{
global $cfg;
if ($extension=='png')
{ $source = imagecreatefrompng($img_big); }
else
{ $source = imagecreatefromjpeg($img_big); }
$big_x = imagesx($source);
$big_y = imagesy($source);
if (!$keepratio)
{
$thumb_x = $small_x;
$thumb_y = $small_y;
}
elseif ($big_x == $big_y)
{
$thumb_x = $small_x;
$thumb_y = $small_y;
}
elseif ($big_x > $big_y)
{
$thumb_x = $small_x;
$thumb_y = floor($big_y * ($small_x / $big_x));
}
elseif ($big_x < $big_y)
{
$thumb_x = floor($big_x * ($small_y / $big_y))+4;
$thumb_y = $small_y;
}
if ($textsize==0)
{
if ($cfg['th_amode']=='GD1')
{ $new = imagecreate($thumb_x+$bordersize*2, $thumb_y+$bordersize*2); }
else
{ $new = imagecreatetruecolor($thumb_x+$bordersize*2, $thumb_y+$bordersize*2); }
$background_color = imagecolorallocate ($new, $bgcolor[0], $bgcolor[1] ,$bgcolor[2]);
imagerectangle ($new, 0,0, $thumb_x+$bordersize*2, $thumb_y+$bordersize*2, $background_color);
if ($cfg['th_amode']=='GD1')
{ imagecopyresized($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
else
{ imagecopyresampled($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
}
else
{
if ($cfg['th_amode']=='GD1')
{ $new = imagecreate($thumb_x+$bordersize*2, $thumb_y+$bordersize*2+$textsize*3.5+6); }
else
{ $new = imagecreatetruecolor($thumb_x+$bordersize*2, $thumb_y+$bordersize*2+$textsize*3.5+7); }
$background_color = imagecolorallocate ($new, $bgcolor[0], $bgcolor[1] ,$bgcolor[2]);
imagerectangle ($new, 0,0, $thumb_x+$bordersize*2-1, $thumb_y+$bordersize*2+$textsize*3.5+6, $background_color);
$text_color = imagecolorallocate ($new, $textcolor[0],$textcolor[1],$textcolor[2]);
if ($cfg['th_amode']=='GD1')
{ imagecopyresized($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
else
{
imagecopyresampled($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y);
}
// imagestring ($new, $textsize, $bordersize, $thumb_y+$bordersize+2, $filen, $text_color);
imagestring ($new, $textsize, $bordersize+1, $thumb_y+$bordersize+$textsize, " ".$big_x."x".$big_y." ".$fsize."kb", $text_color);
}
if ($extension=='png')
{ imagepng($new, $img_small); }
else
{ imagejpeg($new, $img_small, $jpegquality); }
imagedestroy($new);
imagedestroy($source);
return;
}
Там, же, я предлагал настоящую панораму, с геометрическими искажениями и вращением панорамы, я, использовал функцию из
http://www.pixaround.com/ - но оказалось не актуально
www.cotonti.mobi