We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
看到有人 @zhufree #13 贡献了批量改图的代码,我也是直接拿来用了,但是发现圆形锯齿比较明显,做了一点小小的优化:先画了一个很大的圆,然后缩放到应该大小,再蒙版剪裁。另外,也能支持jpg或者png的
# coding:utf-8 from PIL import Image, ImageDraw import os # 尺寸 size_dict = { 1: 52, 2: 80, 3: 108, 4: 119, 5: 152, 6: 183, 7: 193, 8: 258, 9: 308, 10: 308, 11: 408, } # 项目中的资源文件名 file_name_dict = { 1: 'ad/ad16ccdc-975e-4393-ae7b-8ac79c3795f2.png', 2: '0c/0cbb3dbb-2a85-42a5-be21-9839611e5af7.png', 3: 'd0/d0c676e4-0956-4a03-90af-fee028cfabe4.png', 4: '74/74237057-2880-4e1f-8a78-6d8ef00a1f5f.png', 5: '13/132ded82-3e39-4e2e-bc34-fc934870f84c.png', 6: '03/03c33f55-5932-4ff7-896b-814ba3a8edb8.png', 7: '66/665a0ec9-6c43-4858-974c-025514f2a0e7.png', 8: '84/84bc9d40-83d0-480c-b46a-3ef59e603e14.png', 9: '5f/5fa0264d-acbf-4a7b-8923-c106ec3b9215.png', 10: '56/564ba620-6a55-4cbe-a5a6-6fa3edd80151.png', 11: '50/5035266c-8df3-4236-8d82-a375e97a0d9c.png', } # 原图片文件夹,要求全部为正方形图片,1.png-11.png raw_img_path = './love/' # 项目中资源文件夹 des_img_path = './res/raw-assets/' scale = 20 def circle(i): w = size_dict[i] radius = size_dict[i]//2 bigR = radius * scale circle = Image.new('L', (bigR * 2, bigR * 2), 0) # 创建一个黑色背景的画布 draw = ImageDraw.Draw(circle) draw.ellipse((0, 0, bigR * 2, bigR * 2), fill=255) # 画白色圆形 try: raw_img = Image.open(raw_img_path + str(i) + '.png') except FileNotFoundError: raw_img = Image.open(raw_img_path + str(i) + '.jpg') avatar_size = (w, w) circle = circle.resize(avatar_size, Image.ANTIALIAS) im_resize = raw_img.resize(avatar_size, Image.ANTIALIAS) alpha = Image.new('L', im_resize.size, 255) alpha.paste(circle.crop((0, 0, radius, radius)), (0, 0)) # 左上角 alpha.paste(circle.crop((radius, 0, radius * 2, radius)), (w - radius, 0)) # 右上角 alpha.paste(circle.crop((radius, radius, radius * 2, radius * 2)), (w - radius, w - radius)) # 右下角 alpha.paste(circle.crop((0, radius, radius, radius * 2)), (0, w - radius)) # 左下角 im_resize.putalpha(alpha) im_resize.save(des_img_path + file_name_dict[i]) if __name__ == '__main__': for i in range(1, 12): circle(i)
The text was updated successfully, but these errors were encountered:
哇,我也觉得锯齿很严重,太棒了
Sorry, something went wrong.
No branches or pull requests
看到有人 @zhufree #13 贡献了批量改图的代码,我也是直接拿来用了,但是发现圆形锯齿比较明显,做了一点小小的优化:先画了一个很大的圆,然后缩放到应该大小,再蒙版剪裁。另外,也能支持jpg或者png的
The text was updated successfully, but these errors were encountered: