Python PIL保存功能创建的图像太大
我有一个不同大小的png图像数据集(大部分约为400x400像素),每个图像的重量约为30ko。由于其中一些不是完美的正方形,我有时需要去掉一行/一列像素。因此,我使用pil导入文件,将其转换为numpy数组,删除行/列,然后使用pil save将其保存回:Python PIL保存功能创建的图像太大,python,image,resize,python-imaging-library,Python,Image,Resize,Python Imaging Library,我有一个不同大小的png图像数据集(大部分约为400x400像素),每个图像的重量约为30ko。由于其中一些不是完美的正方形,我有时需要去掉一行/一列像素。因此,我使用pil导入文件,将其转换为numpy数组,删除行/列,然后使用pil save将其保存回: for i in range(len(database)): file_name = str(i)+".png" original_file_path = os.path.join(original_pa
for i in range(len(database)):
file_name = str(i)+".png"
original_file_path = os.path.join(original_path, file_name)
image = Image.open(original_file_path)
width, height = image.size
if(width != height):
if(width - height == 1):
image_array = np.array(image)
image_array = np.delete(image_array, (width - 1), 1)
image = Image.fromarray(image_array)
elif(height - width == 1):
image_array = np.array(image)
image_array = np.delete(image_array, (height - 1), 0)
image = Image.fromarray(image_array)
image.save(os.path.join(new_path, file_name),format="png", optimize=True)
尽管我使用了参数optimize,但最后的图像重量接近300ko,是否可以使用30ko大小的图像
谢谢你的回答
请回答您的问题,并添加一个“重”约30 KB的示例图像文件,以便其他人可以重现问题并测试解决方案。看起来您是从一个带有调色板的PNG开始的,新图像不是使用调色板,就是使用的调色板远远不是最佳的。请提供一个样本
PNG
输入和输出图像-而不是JPEG
。您只想删除一些行/列,还是需要进行其他处理?最后,我希望所有图像的大小都调整为固定大小:380x380。对于提供的图片,我正在加载png,但它将其转换为jpgIf。您不能通过imgur提供png图像,请使用Dropbox、Google Drive或类似工具。如果您的输入图像是400x400,并且您希望它是380x380,您是调整它的大小还是裁剪它?