Django PIL:无法识别图像文件

时间:2014-02-13 08:30:01

标签: python django python-imaging-library

我正在尝试打开图像并使用PIL调整大小:

     kids = family.kids.all()
     for kid in kids:
            pictureIO = StringIO.StringIO(kid.image_url)
            pictureIO.seek(0)
            im = PIL.Image.open(pictureIO)
            wpercent = (300/float(im.size[0]))
            hsize = int((float(im.size[1])*float(wpercent)))
            im = im.resize((300,hsize), PIL.Image.ANTIALIAS)

但它给了我错误:

    cannot identify image file

kid.image_url是:

   /media/proj/proj/kid1.jpg

回溯:

                 im = PIL.Image.open(kid.image_url)

我该如何解决这个问题?提前致谢。

3 个答案:

答案 0 :(得分:0)

StringIO需要文件对象,而不是文件名。只是做:

f = open(kid.image_url)
pictureIO = StringIO.StringIO(f)

答案 1 :(得分:0)

BufferedImage originalImage = ImageIO.read(new File("/home/sithamparam/Desktop/12.jpg"));
int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB:originalImage.getType();
BufferedImage resizeImageJpg = resizeImage(originalImage, type);
ImageIO.write(resizeImageJpg, "jpg", new File("/home/sithamparam/Desktop/12.jpg"));

答案 2 :(得分:0)

网址与“网站”相关。使用“kid.image.path”。 (我不知道你的image_url是如何填充的,但我认为“/”是基于web root,而不是驱动器的根目录)

https://docs.djangoproject.com/en/dev/topics/files/