我正在尝试检查图像的尺寸,然后保存它。我不需要改变它,只要确保它符合我的极限。
现在,我可以读取该文件,并将其保存到AWS而不会出现问题。
output['pic file'] = request.POST['picture_file']
conn = myproject.S3.AWSAuthConnection(aws_key_id, aws_key)
filedata = request.FILES['picture'].read()
content_type = 'image/png'
conn.put(
bucket_name,
request.POST['picture_file'],
myproject.S3.S3Object(filedata),
{'x-amz-acl': 'public-read', 'Content-Type': content_type},
)
我需要在中间放一步,以确保文件具有正确的尺寸/宽度尺寸。我的文件不是来自使用ImageField的表单,而且我见过的所有解决方案都使用它。
有没有办法做类似
的事情img = Image.open(filedata)
答案 0 :(得分:3)
image = Image.open(file)
#To get the image size, in pixels.
(width,height) = image.size()
#check for dimensions width and height and resize
image = image.resize((width_new,height_new))
答案 1 :(得分:1)
我以前做过这个,但我找不到我的旧片段......所以这里我们脱离了我的头脑
picture = request.FILES.get['picture']
img = Image.open(picture)
#check sizes .... probably using img.size and then resize
#resave if necessary
imgstr = StringIO()
img.save(imgstr, 'PNG')
imgstr.reset()
filedata = imgstr.read()
答案 2 :(得分:1)
下面的代码根据您的需要从请求中创建图像:
from PIL import ImageFile
def image_upload(request):
for f in request.FILES.values():
p = ImageFile.Parser()
while 1:
s = f.read(1024)
if not s:
break
p.feed(s)
im = p.close()
im.save("/tmp/" + f.name)