iphone相机提供了两种保存照片的方式,一种是“高效”,另外一种是“兼容性最佳”。
我们可以通过
设置----》相机----》格式
就可以进入下面这个界面来设置
那么,我们应该怎么来设置呢?来自apple社区有相关的讨论
我想问问,设置-相机-格式,你们选择“高效”,还是 "兼容性最佳" ?我发现高效的格式,图片质量非常大,同一角度,
高效格式6m兼容性最佳 2m
有时是高效格式11m兼容性最佳 6m
至于图片质量,我不专业,我个人觉得差别不大,但是图片大小相差巨大,细节地方,放大到很大才发现差别。你们的怎么看?
有这样答的,感觉很详细了
一般来说,建议选择“高效”。“高效”所指的HEIF(图片)、HEVC(视频)格式更为先进,特别是它们的压缩算法更好,能显著减小文件体积、同时维持质量相同甚至更好。几年前刚开始推广它们的时候,会出现兼容性问题(例如一些旧版本Windows、iOS、macOS等的内置软件无法正确打开,需要借助第三方软件),但现在几乎可以不必考虑。PS:并不是说保持同一角度拍摄,图片就应该一样大;压缩算法对图像内容的“细微”变化非常敏感。
可以下载免费的软件“HEIF-Utility”,但这个软件在转换照片的时候,会丢弃EXIF信息(就是我们照相时的时间,照相时的GPS,照相的设备信息等),这些信息其实是比较重要的,比如照片实际拍摄时间如果没有了,我们就不知道这个照片时间拍摄时间了,一些智能分类软件也没有办法按照时间进行分类。
在网上又找了一些其他的软件,但都是收费的,或者转换完会丢弃EXIF。自己就写了一个python脚本来处理。
由于是window系统,在网上搜了一下,大部分都是“import pyheif”,而这个只能在MAC,或者Linux系统下运行,后又发现“pillow_heif ”是可以在window下作用的,于是按照“import pillow_heif ”,进行了实现,并且可以正确保持照片的EXIF信息。
环境,windows, python3,如果没有安装pillow_heif或piexif的话
python3 -m pip install --upgrade pip
python3 -m pip install pillow-heif
python3 -m pip install --upgrade Pillow
pip install piexif
sudo pip3 install glob3
glob这个不同的python版本对应的名字不一样,要切记。
python 2.7:
sudo pip install glob2
python 3.5:
sudo pip install glob3
from PIL import Image
import pillow_heif
import piexif
from glob import glob
import sys
# pillow_heif.register_heif_opener()
def heic_to_jpg(img_path,save_path):
name = (img_path.split('\\')[-1]).split('.')[0]
# open the image file
heif_file = pillow_heif.read_heif(img_path)
#create the new image
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
# PIL rotates the image according to exif info, so it's necessary to remove the orientation tag otherwise the image will be rotated again (1° time from PIL, 2° from viewer).
exif_dict = piexif.load(heif_file.info['exif'])
exif_dict['0th'][274] = 0
exif_bytes = piexif.dump(exif_dict)
image.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
files = glob(r"D:/NEW/12/2022/12/04/*.heic") #读取全部heic文件地址
save_path = "D:/NEW/12/2022/12/04/dst/" #储存地址
for img in files:
print("Conversion process: ", img)
sys.stdout.flush()
heic_to_jpg(img,save_path)
print('--------------finish-------------')
python - HEIC to JPEG conversion with metadata - Stack Overflow
还可以同时调节下面这些参数
"""
1、对比度:白色画面(最亮时)下的亮度除以黑色画面(最暗时)下的亮度;
2、色彩饱和度::彩度除以明度,指色彩的鲜艳程度,也称色彩的纯度;
3、色调:向负方向调节会显现红色,正方向调节则增加黄色。适合对肤色对象进行微调;
4、锐度:是反映图像平面清晰度和图像边缘锐利程度的一个指标。
"""
from PIL import Image
from PIL import ImageEnhance
#读取图片,如果已经使用了Image.frombytes,就不需要这步
image = Image.open(image_path)
#变亮
#亮度增强,增强因子为0.0将产生黑色图像;为1.0将保持原始图像。
enh_bri = ImageEnhance.Brightness(image)
brightness = 1.5
image_brightened1 = enh_bri.enhance(brightness)
image_brightened1.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
#变暗
enh_bri = ImageEnhance.Brightness(image)
brightness = 0.8
image_brightened2 = enh_bri.enhance(brightness)
image_brightened2.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
#色度,增强因子为1.0是原始图像
# 色度增强
enh_col = ImageEnhance.Color(image)
color = 1.5
image_colored1 = enh_col.enhance(color)
image_colored1.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
# 色度减弱
enh_col = ImageEnhance.Color(image)
color = 0.8
image_colored2 = enh_col.enhance(color)
image_colored2.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
#对比度,增强因子为1.0是原始图片
# 对比度增强
enh_con = ImageEnhance.Contrast(image)
contrast = 1.5
image_contrasted1 = enh_con.enhance(contrast)
image_contrasted1.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
# 对比度减弱
enh_con = ImageEnhance.Contrast(image)
contrast = 0.8
image_contrasted2 = enh_con.enhance(contrast)
image_contrasted2.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
# 锐度,增强因子为1.0是原始图片
# 锐度增强
enh_sha = ImageEnhance.Sharpness(image)
sharpness = 3.0
image_sharped1 = enh_sha.enhance(sharpness)
image_sharped1.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
# 锐度减弱
enh_sha = ImageEnhance.Sharpness(image)
sharpness = 0.8
image_sharped2 = enh_sha.enhance(sharpness)
image_sharped2.save(save_path+name+".jpg", "JPEG", exif=exif_bytes, quality=85) #默认转成jpg
python中使用PIL模块中的ImageEnhance进行图片数据增强_pursuit_zhangyu的博客-CSDN博客_pil图像增强
单独调整亮度
im1 = Image.open("angelababy.jpg")
im2 = im1.point(lambda p: p * 0.5)
im2.save("angelababy2.jpg")