ps保存格式没有jpg如何办
更新时间:2023-07-08了解问题——为何PS没有JPG保存格式
在设计过程中,我们经常会使用Photoshop进行图片的编辑与处理。在处理完图片后,一般都需要将其保存在指定的格式中。然而,有时候我们却发现Photoshop中并没有我们需要的图片格式,比如像JPG,PNG等等。这时候我们该如何处理呢?
解决方案一——使用其他软件打开并转换格式
如果我们使用Photoshop时需要将图片保存为其他格式,而PS本身并不支持这种格式,那么我们可以考虑使用其他软件来进行转换。比如将图片导出为一个有常规格式的文件,再用第三方转换工具来将其转换为我们需要的格式。
public function changeFormat($suffix){
//将原来的文件名改为指定的后缀
$newName = str_replace($this->suffix, $suffix, $this->name);
//更改$fileName属性
$this->fileName = $this->dir . '/' . $newName;
//保存
$bool = imageJpeg($this->img, $this->fileName);
return $bool;
}
解决方案二——使用PS插件
如果我们需要转换格式的图片是一个比较独特的格式,而第三方软件无法进行转换,这时候我们可以使用Photoshop插件。有一些插件在PS中安装后可以增加新的文件格式,因此我们就能够保存为原先无法保存的图片格式了。
function saveImage($img, $path){
//判断文件的后缀
$ext = pathinfo($path, PATHINFO_EXTENSION);
switch($ext){
//如果是JPEG格式
case 'jpg':
case 'jpeg':
return imagejpeg($img, $path, 100);
break;
//如果是PNG格式
case 'png':
return imagepng($img, $path, 0);
break;
//如果是BMP格式
case 'bmp':
return imagebmp($img, $path);
break;
//如果是GIF格式
case 'gif':
return imagegif($img, $path);
break;
default:
return false;
}
}
解决方案三——创建自己的格式
有时候并不是我们需要的格式在PS中不存在,而是我们需要一个很独特的格式,这时候我们可以考虑创建自己的格式。
public function saveMyFormat($img, $path){
//判断文件的后缀
$ext = pathinfo($path, PATHINFO_EXTENSION);
if($ext == 'myformat'){
//打开文件
$file = fopen($path, 'w');
//写入数据
fwrite($file, $this->getMyFormatData($img));
//关闭文件
fclose($file);
return true;
}
return false;
}
public function getMyFormatData($img){
//获取图片的像素
$w = imagesx($img);
$h = imagesy($img);
//解析图片数据
$data = '';
for($i = 0; $i < $h; $i++){
for($j = 0; $j < $w; $j++){
$rgb = imagecolorat($img, $j, $i);
$r = ($rgb >> 16) & 0xff;
$g = ($rgb >> 8) & 0xff;
$b = $rgb & 0xff;
$data .= "$r,$g,$b\n";
}
}
return $data;
}
总结
无法保存JPG格式的问题,我们可以采用三种方案。一是使用其他软件来进行转换;二是使用PS插件来增加新的文件格式;三是自己创建一种格式。无论哪种方法,都需要我们对文件格式、保存函数进行了解。