Когда пользователь загружает AI-файл, тогда, если размер загруженного файла меньше или равен (180 x 180), я хочу изменить размер этого файла до увеличенного размера (277 x 277), а затем преобразовать его в JPG. Я попробовал код, упомянутый ниже. Я перепробовал все способы, которые прокомментированы в коде.
$image_rs = new Imagick();
$image_rs->readimage(realpath(SOURCE_UPLOAD_PATH.$source_file_name));
if($fileType == "ai"){
$image_rs->setIteratorIndex(0);
}
$dimensions = $image_rs->getImageGeometry();
$width = $dimensions['width'];
$height = $dimensions['height'];
if($width <= 180 && $height <= 180){
//$image_rs->magnifyImage();
$image_rs->setImageFormat($source_file_ext);
$image_rs->scaleImage(277,0);
// $image_rs->adaptiveResizeImage(277,277);
// $image_rs->resizeImage(277,277,\Imagick::FILTER_CATROM, 1, true);
$image_rs->writeImage(realpath(RESIZED_UPLOAD_PATH)."/". $source_file_name);
$image = new Imagick();
$image->readimage(realpath(RESIZED_UPLOAD_PATH.$source_file_name));
if($fileType == "ai"){
$image->setIteratorIndex(0);
}
$dimensions = $image->getImageGeometry();
$width = $dimensions['width'];
$height = $dimensions['height'];
$image->thumbnailImage($width, $height);
$image->writeImage(realpath(CONVERTED_UPLOAD_PATH)."/". $source_file_name_without_ext.".jpg");
}
Проблема: При использовании этого кода размер изображения успешно изменяется, но AI-файл с измененным размером также становится размытым. из-за библиотеки Imagick при изменении размера изображения она преобразует AI-файл в jpg. AI-файл - векторный файл, поэтому нет шансов стать размытым, даже если мы увеличим размерность. Так как я могу сделать это с помощью imagemagick?