假设我在一个看起来像list(im.getdata())的列表中有一个像素列表(表示为具有3个RGB值的元组),如下所示:[(0,0,0),(255,255,255),(38,29,58)...]如何使用这种格式的RGB值(每个元组对应一个像素)创建新图像?感谢您的帮助。 最佳答案 你可以这样做:list_of_pixels=list(im.getdata())#Dosomethingtothepixels...im2=Image.new(im.mode,im.size)im2.putdata(list_of_pixels)
我有一些奇怪的问题,PIL没有调整图像大小。fromPILimportImageimg=Image.open('foo.jpg')width,height=img.sizeratio=floor(height/width)newheight=ratio*150img.resize((150,newheight),Image.ANTIALIAS)img.save('mugshotv2.jpg',format='JPEG')此代码运行没有任何错误,并在正确的文件夹中生成名为mugshotv2.jpg的图像,但它不会调整它的大小。它对它有所帮助,因为图片的大小从120kb下降到20kb,但尺
我之前发布了一个关于这个主题的问题,并且阅读了之前发布的其他问题,但没有一个能够成功解决我的问题。我正在尝试在MacOSXLion上安装PIL,因为Django应用程序需要它。我还需要JPEG支持,所以我也需要一个JPEG解码器。我尝试下载libjpeg源并编译它们,然后安装PIL,但它无法识别目录。所以我想要的,我相信这存在于某个地方,是一种使用包安装程序安装PIL和libjpeg的方法,无需任何编译!提前感谢您的每一次回复。 最佳答案 在我们的virtualenv中,我们发现我们需要做的就是:pipuninstallPILbre
我正在Flask中创建一个简单的API,它接受以base64编码的图像,然后使用Pillow对其进行解码以进行进一步处理。我查看了一些示例(1、2、3),我想我明白了这个过程的要点,但我一直收到一个错误,即Pillow无法读取字符串I给了。这是我目前所得到的:importcStringIOfromPILimportImageimportbase64data=request.formimage_string=cStringIO.StringIO(base64.b64decode(data['img']))image=Image.open(image_string)给出错误:IOError
如何使用PIL生成圆形图像缩略图?圆圈外的空间应该是透明的。非常感谢您提供片段,在此先感谢您。 最佳答案 最简单的方法是使用掩码。创建具有您想要的任何形状的黑白蒙版。并使用putalpha将该形状作为alpha层:fromPILimportImage,ImageOpsmask=Image.open('mask.png').convert('L')im=Image.open('image.png')output=ImageOps.fit(im,mask.size,centering=(0.5,0.5))output.putalpha(
我正在尝试(从数码相机拍摄)大(巨大)图像,并将它们转换成可以在网络上显示的东西。这看起来很简单,而且可能应该如此。但是,当我尝试使用PIL创建缩略图版本时,如果我的源图像高于它的宽度,则生成的图像会旋转90度,这样源图像的顶部就位于生成图像的左侧。如果源图像宽于高,则生成的图像是正确的(原始)方向。这可能与我发送的2元组大小有关吗?我正在使用缩略图,因为它似乎是为了保留纵横比。还是我只是完全失明,做着愚蠢的事情?元组的大小为1000,1000,因为我希望将最长边缩小到1000像素,同时保留AR。代码看起来很简单img=Image.open(filename)img.thumbnail
我正在尝试裁剪高分辨率图像并保存结果以确保其完成。但是,无论我如何使用保存方法,我都会收到以下错误:SystemError:tilecannotextendoutsideimagefromPILimportImage#sizeiswidth/heightimg=Image.open('0_388_image1.jpeg')box=(2407,804,71,796)area=img.crop(box)area.save('cropped_0_388_image1','jpeg')output.close() 最佳答案 方框是(左、上、
我不熟悉PIL,但我知道在ImageMagick中将一堆图像放入一个网格中非常容易。例如,我如何将16张图像放入一个4×4的网格中,我可以在其中指定行和列之间的间距? 最佳答案 这在PIL中也很容易做到。创建一个空图像,然后使用paste将所需图像粘贴到您需要的任何位置.这是一个简单的例子:importImage#opensanimage:im=Image.open("1_tree.jpg")#createsanewemptyimage,RGBmode,andsize400by400.new_im=Image.new('RGB',(
有没有简单的解决方案可以在PIL中修剪图像上的空白?ImageMagick通过以下方式轻松支持它:converttest.jpeg-fuzz7%-trimtest_trimmed.jpeg我找到了PIL的解决方案:fromPILimportImage,ImageChopsdeftrim(im,border):bg=Image.new(im.mode,im.size,border)diff=ImageChops.difference(im,bg)bbox=diff.getbbox()ifbbox:returnim.crop(bbox)但是这种解决方案有缺点:我需要定义border颜色,这
我正在为我的应用程序使用flask。我想将图像(由PIL动态生成)发送到客户端而不保存在磁盘上。知道怎么做吗? 最佳答案 这是一个没有任何临时文件等的版本(参见here):defserve_pil_image(pil_img):img_io=StringIO()pil_img.save(img_io,'JPEG',quality=70)img_io.seek(0)returnsend_file(img_io,mimetype='image/jpeg')要在您的代码中使用,只需这样做@app.route('some/route/')d