1

我正在尝试将jSignature图像保存到 django FileField。我的表单保存代码如下:

def save(self, commit=True):
    instance = super(ApplicationForRetailInstallmentContractForm, self).save(commit=False)
    signature = self.cleaned_data.get('signature')
    signature_image = draw_signature(signature)
    # at this point, signature_image is a PIL.Image.Image instance
    signature_image.show()
    signature_io = StringIO.StringIO()
    signature_image.save(signature_io, format='JPEG')
    thumb_file = InMemoryUploadedFile(
        signature_io,
        None,
        '%s signature.jpg' % instance.name,
        'image/jpeg',
        signature_io.len,
        None,
    )
    instance.signature = thumb_file
    if commit:
        instance.save()
    return instance

目前,当签名保存到文件字段时,它会创建一个具有正确分辨率的图像,但那是完全黑色的,这显然是不正确的。因为我们使用谷歌存储桶作为网站媒体的实时版本,所以涉及创建实际本地文件的解决方案将不起作用。最后,我有两个问题:

  1. 什么可能导致图像保存不正确? 2. 是否可以在 django 中使用诸如 signature_image.show() 之类的东西(目前没有显示任何错误但也没有显示任何内容)来查看以 PIL.Image.Image 形式存在的图像,这样我就可以找出在哪里在这个过程中图像被破坏了? 我能够通过按照Image.show()中的建议安装 imagemagick 来显示图像任何已发布代码的问题。
4

0 回答 0