簡體   English   中英

調整大小/裁剪圖像編碼為base64圖像字符串

[英]Resize/crop image encoded as base64 image string

在我的情況下,有兩種方法可以調整圖像大小/裁剪。

  1. 上傳普通圖像文件
  2. 給出圖像的base64字符串數據

1.案例,調整大小和作物運作良好:

f = Image.open(uploaded_image)
new_width, new_height = 1200, 630
wpercent = (new_width / float(f.size[0]))
hsize = int((float(f.size[1]) * float(wpercent)))

if f.mode != "RGB":
   f = f.convert('RGB')

og_img = None
if f.size[0] < new_width:
  #upscale
  og_img = f.resize((new_width, hsize), Image.BICUBIC)

elif f.size[0] >= new_width:
  #downscale
  og_img = f.resize((new_width, hsize), Image.ANTIALIAS)

og_img = og_img.crop((0, 0, 1200, 630))

調整大小/裁剪圖像: 在此輸入圖像描述

在2.情況下,代碼與上面相同,略有變化:

base64_image = str(request.POST.get('base64_image')).split(',')[1]
imgfile = open('/'.join([settings.MEDIA_ROOT, 'test.png' ]), 'w+b')
imgfile.write(decodestring(base64_image))
imgfile.seek(0)
f = Image.open(imgfile)

#.. as above

但調整大小/裁剪的圖像: 在此輸入圖像描述

為什么它的質量和尺寸都不好? (黑底部分..)我做錯了什么? 我是以錯誤的方式讀取base64字符串嗎?

我找到了一個網站里面有很多有趣的東西。它有2個(有很多)工具可能對你有幫助。第1個工具將圖像轉換為base64,第2個工具縮小圖像尺寸(最多70%保存) 。

http://www.w3docs.com/tools/minimage/

http://www.w3docs.com/tools/image-base64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM