Я пытаюсь создать систему загрузки изображений, но столкнулся с проблемой. Система загружает вставленное изображение и создает миниатюру.Загрузить сценарий, обрезание/измельчение миниатюр
Пользователь имеет право указывать ширину и высоту эскизов. Когда изображение позволяет сказать 200px на 100px, и пользователь сказал, что ширина эскиза будет 10px, а высота - 20px, система должна растянуть изображение, которое я не хочу. Я хочу, чтобы система расколола часть изображения с помощью функции Imagick, чтобы получить нормальный эскиз и изображение, когда изображение проходит через скрипт.
Эта функция используется следующим образом:
chopImage (width of the chopped area , height of the chopped area , x coordinate of topleft corner of chopped area , y coordinate of topleft corner of chopped area)
Стандартные конфигурации системы загрузкой данных PHP:
$image = $_FILES["image"]["name"];
$imgtemp = $_FILES["image"]["tmp_name"];
$imgtype = $_FILES["image"]["type"];
$imgsize = $_FILES["image"]["size"];
if(!$image){
if($image_enabled ==2){
$errors[] = "You didn't selected an image to upload";
}
} else {
if($imgtype == 'image/jpeg'){ $filetype= '.jpg'; }else{ $filetype= str_replace ('image/', '', $imgtype); }
$path= 'images/' . md5(rand(0, 1000) . rand(0, 1000) . rand(0, 1000) . rand(0, 1000)) . '.jpg';
$thumb_path= 'images/thumb_' . md5(rand(0, 1000) . rand(0, 1000) . rand(0, 1000) . rand(0, 1000)) . '.jpg';
$imgsize2= getimagesize($imgtemp);
$width= $imgsize2[0];
$height= $imgsize2[1];
$maxwidth= 1281;
$maxheight= 721;
$allowed= array('image/png', 'image/jpeg', 'image/gif',);
if(in_array($imgtype, $allowed)){
if($width < $maxwidth && $height < $maxheight){
if($imgsize < 5242880){
Часть Я stucked с:
if(!isEmpty($image_thumbheight) || !isEmpty($image_thumbwidth)){
switch($imgtype){
case 'image/gif';
$img= imagecreatefromgif($imgtemp);
$img_thumb= imagecreatefromgif($thumb);
header("Content-type: image/gif");
$image_crop = new Imagick("$image");
$image_crop->cropImage($image_thumbwidth,$image_thumbheight, 0,$height);
$image_crop->writeImage($thumb);
imagegif($thumb, $thumb_path);
break;
case 'image/png';
$img= imagecreatefrompng($imgtemp);
header("Content-type: image/png");
$image_crop = new Imagick("$imgtemp");
$image_crop->chopImage($image_thumbwidth,$image_thumbheight, 0,$height);
$image_crop->writeImage($thumb);
imagepng($thumb, $thumb_path);
break;
case 'image/jpeg';
$img= imagecreatefromjpeg($imgtemp);
$img_thumb= imagecreatefromjpeg($thumb);
header("Content-type: image/jpeg");
$image_crop = new Imagick("$image");
$image_crop->chopImage($image_thumbwidth,$image_thumbheight, 0,$height);
$image_crop->writeImage($thumb_path);
imagejpeg($thumb, $thumb_path);
break;
}
move_uploaded_file($imgtemp, $path);
echo "Image is successfully uploaded.";
}
Когда я запускаю это скрипт только загружает нормальное изображение. Миниатюра не загружается. Функция imagick не используется очень часто, я считаю, потому что не мог найти загрузочные учебники в Интернете с использованием функции imagick. Может кто-нибудь помочь мне?