1

为什么这不起作用?

从 wand.image 导入图像

def upload_to_cars(instance, filename):
        blocks = filename.split('.')
        ext = blocks[-1]
        filename = "%s.%s" % (instance.name.replace(" ", "-"), ext)
        with Image (filename=filename) as img:
                img.type='grayscale';
                img.save  
        return filename
class Cars(models.Model):
        name = models.CharField(max_length=200)
        image_file = models.ImageField(upload_to=upload_to_cars, null=True, blank=True)

我想在 django 中上传图像并对其进行灰度化。每次我运行这段代码时,它都会抛出一个

`解码此图像格式的委托'保时捷'@error/constitute.c/ReadImage/544

Porsche 是类的名称,应该是上传的图像文件的名称

帮助!

4

1 回答 1

0

这真的很简单,问题是,图像被上传到媒体文件夹中。所以一个简单的字符串"media/"就可以了:

def grey():
        with Image (filename=media) as img:
            img.type='grayscale';
            img.save(filename=media)

def upload_to_cars(instance, filename):
    blocks = filename.split('.')
    ext = blocks[-1]
    filename = "%s.%s" % (instance.name.replace(" ", "-"), ext)
    global media
    media = "media/"+filename
    t=Timer(1.0,grey)
    t.start()
    return filename
于 2015-07-30T18:07:33.537 回答