php 转换ico到png格式在vue laravel

nbysray5  于 2023-02-07  发布在  PHP
关注(0)|答案(1)|浏览(112)

我正在尝试到convert ico格式文件到png格式

$media_url ="https://static.licdn.com/scds/common/u/images/logos/favicons/v1/favicon.ico"
  $filePath = public_path('media_downloads').'/pnff.png';
  file_put_contents($filePath, file_get_contents($media_url));
             
  $s3 = \Storage::disk('s3');
  $res = $s3->put($filePath, file_get_contents($img), 'public');
  $downloadUrl = \Storage::disk('s3')->url($filePath);

我得到了s3的网址,但文件是不打开我认为它是corrupt我如何能改变图像内容类型,同时保存到一个文件夹也在s3

oyxsuwqo

oyxsuwqo1#

我已经使用Imagick完成了ico到png的转换,谢谢@aynber @Chris哈斯的指导

use Imagick;

            $file = $media_url;
            $extension = pathinfo(parse_url($file, PHP_URL_PATH), PATHINFO_EXTENSION);
            $filename = 'linkedin_thumbnail' . time() . '.' . $extension;
            $local_file_path = public_path('media_downloads') . '/' . $filename;
            $contents = file_get_contents($file);
            file_put_contents($local_file_path, $contents);
            $image = new Imagick();
            $image->readImage($local_file_path);
            $image->cropThumbnailImage(100,100);
            $image->setImageFormat("png");
            header("Content-type: image/png");
            $filePath2           = public_path('media_downloads').'/'.date('ymdhis').'.png';
            $image->writeImage( $filePath2 );
            $media_url = $filePath2;

            unlink($local_file_path);
            unlink($filePath2);

相关问题