c语言编程笔录

首页 >   > 笔记大全

笔记大全

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插件来增加新的文件格式;三是自己创建一种格式。无论哪种方法,都需要我们对文件格式、保存函数进行了解。