我正在heroku上设置django应用程序,该应用程序使用S3进行存储,并使用django-ckeditor允许用户提交包含图像的相当丰富的帖子。一切正常,用户可以提交包含图片的帖子,但是我希望能够在上传或处理图片时显示微调框。
在库中浏览,例如在Moono皮肤中有对微调器的各种引用,因此我想第一个问题是是否实现了功能,而我的设置中缺少某些东西。 如果未实施,那么最好的方法是挂接到该上传事件。
我已经对pillow_backend.py进行了一些更改,以固定图像的方向并调整其大小,以便也许我可以在处理正在进行时使用通知插件显示一条消息,只是不确定该怎么做。
图像存储在S3中
if imager.height > 600 or imager.width > 600:
# quality = getattr(settings, "CKEDITOR_IMAGE_QUALITY", 90)
try:
for orientation in ExifTags.TAGS.keys():
if ExifTags.TAGS[orientation] == 'Orientation':
break
exif = dict(imager._getexif().items())
if exif[orientation] == 3:
imager = imager.rotate(180, expand=True)
elif exif[orientation] == 6:
imager = imager.rotate(270, expand=True)
elif exif[orientation] == 8:
imager = imager.rotate(90, expand=True)
except (AttributeError, KeyError, IndexError):
pass
basewidth = 600
wpercent = (basewidth/float(imager.size[0]))
hsize = int((float(imager.size[1])*float(wpercent)))
imager = imager.resize((basewidth,hsize), Image.ANTIALIAS)
in_mem_file = io.BytesIO()
if filepath.endswith('.jpg'):
imager.save(in_mem_file, format='JPEG')
else:
imager.save(in_mem_file, format='PNG')
img_write = storage.open(filepath, 'w+')
img_write.write(in_mem_file.getvalue())
img_write.close()
期望向用户显示图像正在上传/正在处理的指示。