Ну у моего хостера IM установлен, но exec запрещен, так что тольку от него... Приходится изголяться...
Я вот такой скрипт пользую (похож на приведенный во втором посте). Оригинал взят с php.net и слегка подправлен.
PHP код:
function createthumb($IMAGE_SOURCE,$THUMB_X,$THUMB_Y, $OUTPUT_FILE,$SHOW_ERRORS,$SHOW_SUCCESS)
{
$BACKUP_FILE = $OUTPUT_FILE."_backup.jpg";
copy($IMAGE_SOURCE,$BACKUP_FILE);
$IMAGE_PROPERTIES = GetImageSize($BACKUP_FILE);
if (!$IMAGE_PROPERTIES[2] == 2) {
if ($SHOW_ERRORS) { echo "<br>Не получилось. Ваш файл имеет формат, отличный от jpg."; }
return(0);
} else {
$SRC_IMAGE = ImageCreateFromJPEG($BACKUP_FILE);
$SRC_X = ImageSX($SRC_IMAGE);
$SRC_Y = ImageSY($SRC_IMAGE);
if (($THUMB_Y == "0") && ($THUMB_X == "0")) {
return(0);
} elseif ($THUMB_Y == "0") {
$SCALEX = $THUMB_X/($SRC_X-1);
$THUMB_Y = $SRC_Y*$SCALEX;
} elseif ($THUMB_X == "0") {
$SCALEY = $THUMB_Y/($SRC_Y-1);
$THUMB_X = $SRC_X*$SCALEY;
}
$THUMB_X = floor($THUMB_X);
$THUMB_Y = floor($THUMB_Y);
$DEST_IMAGE = imagecreatetruecolor($THUMB_X, $THUMB_Y);
unlink($BACKUP_FILE);
if (!imagecopyresized($DEST_IMAGE, $SRC_IMAGE, 0, 0, 0, 0, $THUMB_X, $THUMB_Y, $SRC_X, $SRC_Y)) {
imagedestroy($SRC_IMAGE);
imagedestroy($DEST_IMAGE);
if ($SHOW_ERRORS) { echo "<br>Не получилось изменить размер изображения."; }
return(0);
} else {
imagedestroy($SRC_IMAGE);
if (ImageJPEG($DEST_IMAGE,$OUTPUT_FILE))
{
imagedestroy($DEST_IMAGE);
if ($SHOW_SUCCESS) { echo "<br>Фотография обработана успешно!!!"; }
return(1);
}
imagedestroy($DEST_IMAGE);
}
if ($SHOW_ERRORS) { echo "<br>Не получилось!"; }
return(0);
}
}
Вызов например так if (createthumb ($_FILES['img']['tmp_name'],75,0,$file,0,0)=="0")