在写一个php把图片方向根据exif旋转过来的功能,功能是做好了,但是旋转之后的图片文件exif信息都没了,因为我用imagejpeg重写了图片,请问怎么把exif写回去?

贴一下我旋转图片的代码:

function rotateImg($img,$degrees,$bgd_color=0,$ignore_transparent=null){
    $resource = imagecreatefromjpeg($img);
    //$resource = imagecreatefromstring(file_get_contents($img));
    if(!$resource)
        return false;

    $resource = imagerotate($resource, $degrees, $bgd_color,$ignore_transparent);
    print_r($img);
    if($resource&&imagejpeg($resource,$img)){
        imagedestroy($resource);//释放内存
        return true;
    }
    return false;
}
登录后复制
登录后复制

回复内容:

在写一个php把图片方向根据exif旋转过来的功能,功能是做好了,但是旋转之后的图片文件exif信息都没了,因为我用imagejpeg重写了图片,请问怎么把exif写回去?

贴一下我旋转图片的代码:

function rotateImg($img,$degrees,$bgd_color=0,$ignore_transparent=null){
    $resource = imagecreatefromjpeg($img);
    //$resource = imagecreatefromstring(file_get_contents($img));
    if(!$resource)
        return false;

    $resource = imagerotate($resource, $degrees, $bgd_color,$ignore_transparent);
    print_r($img);
    if($resource&&imagejpeg($resource,$img)){
        imagedestroy($resource);//释放内存
        return true;
    }
    return false;
}
登录后复制
登录后复制

用Imagick可以很方便的读取/写入EXIF信息。
http://php.net/manual/en/imagick.setimageproperty.php

Gd是不支持exif写入的,只能读取。

相比Gd,Imagick实在是太先进了。换吧。

08-31 10:18