在处理图片时,若加载一个大的图像,它加载所需要的时间一般会很长。
普通解决办法:压缩图片。
压缩时需要注意以下几个问题:
1、实际文件的大小;
2、分辨率;
3、压缩;
一般来说,压缩图片会使图像质量受到影响,因此,压缩文件也要适可而止。
有效方法:图片分割。
它将允许你在加载图片的时候可以一片一片地加载,直到整个图像出现在你的屏幕上。
四种图片分割的方法:宫格式、参考线式、自由式、python切片。
宫格式步骤:
1、打开PS,拖入图片。
2、在左边的工具栏,右键“切片工具”,选择“切片工具”,此时会出现切刀的指标。
3、切刀的指标在图片上右键,选择“划分图片”,设定好水平划分和垂直划分的切片数,再点击“确定”。(也可进行像素/切片,设定好像素的数值即可)
4、点击“文件”,选择“导出”,再选择“存储为web所用格式(旧版)”。
5、图片可以选择为“JPEG高”,设定好相应的格式后,再选择“存储”。
6、选择合适的文件夹、文件名,设置格式(一般是仅限图像)、设置、切片。点击“保存”。
若上面步骤不知所措,可以按照下列操作教程步骤。若是会的话,可以直接跳过。
1、打开PS,拖入图片。
2、在左边的工具栏,右键“切片工具”,选择“切片工具”,此时会出现切刀的指标。
3、切刀的指标在图片上右键,选择“划分图片”,设定好水平划分和垂直划分的切片数,再点击“确定”。(也可进行像素/切片,设定好像素的数值即可)
4、点击“文件”,选择“存储为web所用格式(旧版)”。
5、图片可以选择为“JPEG高”,设定好相应的格式后,再选择“存储”。
6、选择合适的文件夹、文件名,设置格式(一般是仅限图像)、设置、切片。点击“保存”。
效果
参考线式步骤:
1、打开PS,拖入图片。
2、按下“Ctrl + R”,使得PS框内出现标尺。
3、从上标尺和左标尺处拉出适当的标尺线,分割好图片。
4、在左边的工具栏,右键“切片工具”,选择“切片工具”,此时会出现切刀的指标。
5、点击图片上方的“基于参考线的切片”,此时图片会对分割好的图片标号。
6、点击“文件”,选择“导出”,再选择“存储为web所用格式(旧版)”。
7、图片可以选择为“JPEG高”,设定好相应的格式后,再选择“存储”。
8、选择合适的文件夹、文件名,设置格式(一般是仅限图像)、设置、切片。点击“保存”。
若上面步骤不知所措,可以按照下列操作教程步骤。若是会的话,可以直接跳过。
1、打开PS,拖入图片
2、按下“Ctrl + R”,使得PS框内出现标尺。
3、从上标尺和左标尺处拉出适当的标尺线,分割好图片。
4、在左边的工具栏,右键“切片工具”,选择“切片工具”,此时会出现切刀的指标。
5、点击图片上方的“基于参考线的切片”,此时图片会对分割好的图片标号。
6、点击“文件”,选择“导出”,再选择“存储为web所用格式(旧版)”。
7、图片可以选择为“JPEG高”,设定好相应的格式后,再选择“存储”。
8、选择合适的文件夹、文件名,设置格式(一般是仅限图像)、设置、切片。点击“保存”。
效果
注意:
1、如果图片在存储的时候,将格式设置为“HTML和图像”格式,那存储的格式是.HTML格式,需要用网页打开,同时也会存储相应的分割图片。
2、对于.HTML格式的文件,实际上是有相关代码的,可以用记事本打开,会显示相关标号区域(图片切割时的区域)的代码等。若将一个区域的代码“删掉并保存”,那么,重新打开的时候,删掉代码的区域显示白色。
自由式
1、打开PS,拖入图片。
2、在左边的工具栏,右键“切片工具”,选择“切片工具”,此时会出现切刀的指标。
3、切分自己要切的部分,此时图片会对分割好的图片标号。
4、点击“文件”,选择“导出”,再选择“存储为web所用格式(旧版)”。
5、图片可以选择为“JPEG高”,设定好相应的格式后,再选择“存储”。
6、选择合适的文件夹、文件名,设置格式(一般是仅限图像)、设置、所有用户切片。点击“保存”。
若上面步骤不知所措,可以按照下列操作教程步骤。若是会的话,可以直接跳过。
1、打开PS,拖入图片。
2、在左边的工具栏,右键“切片工具”,选择“切片工具”,此时会出现切刀的指标。
3、切分自己要切的部分,此时图片会对分割好的图片标号。
4、点击“文件”,选择“导出”,再选择“存储为web所用格式(旧版)”。
5、图片可以选择为“JPEG高”,设定好相应的格式后,再选择“存储”。
6、选择合适的文件夹、文件名,设置格式(一般是仅限图像)、设置、所有用户切片。点击“保存”。
效果
Python切片代码:
from PIL import Image
import sysdef cut_image(image):width_part = 2height_part = 3width, height = image.sizeitem_width = int(width / width_part)item_height= int(height / height_part)box_list = []# (left, upper, right, lower)for i in range(0,height_part):#for j in range(0,width_part):print((j*item_width,i*item_height,(j+1)*item_width,(i+1)*item_height))box = (j*item_width,i*item_height,(j+1)*item_width,(i+1)*item_height)box_list.append(box)image_list = [image.crop(box) for box in box_list]return image_list
#保存
def save_images(image_list):index = 1for image in image_list:image.save('F:/photo/'+str(index) + '.png', 'PNG')index += 1if __name__ == '__main__':file_path = "F:/photo/1.jpg"image = Image.open(file_path)#image.show()image_list = cut_image(image)save_images(image_list)
缺点:如果像素是倍数分割的话可以正常分割,否则,会有部分像素未能显示在分割图片上。
以上四种图片切片方式,按需选择。