你必须imwrite
做到这一点(非常)有限的能力:以JPEG它只接受BitDepth
,Comment
,Mode
和Quality
。并且Mode
和Quality
不会从iminfo
返回。 在imwrite
,你可以这样做:
iminfo = imfinfo('Base_Pic.jpg')
imwrite(...,'BitDepth',iminfo.BitDepth, 'Comment',iminfo.Comment);
除此之外,没有一种方式,据我所知有图像处理工具箱/ Matlab来做到这一点。如果你有TIFF或医学图像,有一些工具箱可以做到这一点,但我还没有找到任何jpeg,即使在文件交换中也是如此...
如果你的系统上有exiftool
,你可以使用
[status info]=system('exiftool -s Base_Pic.jpg');
info
现在包含标记名称和标记值,如列表:
ExifToolVersion : 8.75
FileName : Base_Pic.jpg
Directory : Pictures
FileSize : 2.0 MB
FileModifyDate : 2011:10:27 08:41:55+10:00
FilePermissions : rw-rw-r--
FileType : JPEG
MIMEType : image/jpeg
JFIFVersion : 1.01
ExifByteOrder : Big-endian (Motorola, MM)
Make : Apple
Model : iPhone 4
...
如果你劈在结肠:
您可以使用exiftool -[TAG]=[VALUE]
,例如,将其写回exiftool -Make=Apple -Model="iPhone 4" ...
。
或者你可以在一个犯规命中复制他们“所有”:
system('exiftool -overwrite_original -tagsFromFile Base_Pic.jpg Updated_Image.jpg')