Как я могу изменить размер файла Adobe Illustrator Artwork (AI) до увеличенного размера без потери качества в PHP с помощью ImageMagick? - PullRequest
0 голосов
/ 16 ноября 2018

Когда пользователь загружает 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...