使用Python我希望能够使用PIL以不同的角度绘制文本.
例如,假设您正在绘制时钟周围的数字.数字3将按预期显示,而12我们将逆时针旋转90度.
因此,我需要能够在许多不同的角度绘制许多不同的字符串.
我在Snow Leopard安装过程中安装了开发人员工具,对Snow Leopard进行了全新安装(使用擦除驱动器启动).
然后我安装了Python 2.6.2,取代了Snow Leopard默认的python 2.6.1.我试过通过以下方式安装PIL:
easy_installpippython setup.py build手动运行.所有产生相同的错误(链接到pip日志:http://drop.io/gi2bgw6).我已经看到其他人使用Snow Leopard默认python 2.6.1成功安装PIL,所以我不确定为什么我在使用2.6.2时遇到这么多麻烦.
我想用Python做一些图像处理.
有没有一种简单的方法可以将.png图像导入为灰度/ RGB值矩阵(可能使用PIL)?
我正在使用Python构建照片库,并希望能够快速生成高分辨率图像的缩略图.
为各种图像源生成高质量缩略图的最快方法是什么?
我应该使用像imagemagick这样的外部库吗?还是有一种有效的内部方式来做到这一点?
已调整大小的图像的尺寸将为(最大尺寸):
120x120
720x720
1600x1600
Run Code Online (Sandbox Code Playgroud)
质量是一个问题,因为我希望保留尽可能多的原始颜色并最小化压缩工件.
谢谢.
我正在使用python2.6并且今天早上遇到了问题.它说"模块"没有属性"图像".这是我的意见.为什么我第一次不能使用PIL.Image?
>>> import PIL
>>> PIL.Image
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Image'
>>> from PIL import Image
>>> Image
<module 'PIL.Image' from '/usr/lib/python2.6/dist-packages/PIL/Image.pyc'>
>>> PIL.Image
<module 'PIL.Image' from '/usr/lib/python2.6/dist-packages/PIL/Image.pyc'>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用matplotlib为我正在处理的论文绘制一些数字.我在2D numpy数组中有两组数据:ascii hillshade raster,我可以愉快地绘制和调整使用:
import matplotlib.pyplot as pp
import numpy as np
hillshade = np.genfromtxt('hs.asc', delimiter=' ', skip_header=6)[:,:-1]
pp.imshow(hillshade, vmin=0, vmax=255)
pp.gray()
pp.show()
Run Code Online (Sandbox Code Playgroud)
这使:

第二个ascii栅格描绘了流经景观的河流的属性.该数据可以以与上述相同的方式绘制,但是阵列中不对应于河网的值被指定为-9999的无数据值.目的是将无数据值设置为透明,以便河流值覆盖山体阴影.
这是河流数据,理想情况下,此处表示为0的每个像素都是完全透明的.

对此进行了一些研究后,我似乎可以将我的数据转换为RGBA数组,并将alpha值设置为仅使不需要的单元格透明.但是,河流数组中的值是浮点数并且无法转换(因为原始值是图的整个点),我相信imshow如果使用RGBA格式,该函数只能采用无符号整数.
这种限制有什么办法吗?我希望我可以简单地创建一个具有像素值和alpha值的元组并将其绘制成这样,但这似乎不可能.
我还PIL尝试使用无数据值透明创建河流数据的PNG文件,但这似乎会自动将像素值缩放到0-255,从而丢失了我需要保留的值.
我欢迎任何人对这个问题有任何见解.
我安装了Python Pillow,我正在尝试裁剪图像.
其他效果很好(例如,缩略图,模糊图像等)
每当我运行下面的代码时,我都会收到错误消息:
瓷砖不能延伸到图像外
test_image = test_media.file
original = Image.open(test_image)
width, height = original.size # Get dimensions
left = width/2
top = height/2
right = width/2
bottom = height/2
cropped_example = original.crop((left, top, right, bottom))
cropped_example.show()
Run Code Online (Sandbox Code Playgroud)
我使用了我为PIL找到的裁剪示例,因为我找不到枕头(我假设它是相同的).
我可以使用PIL 从图像中获取EXIF数据,但是如何获取照片的拍摄日期和时间?
我需要使用Python调整jpg图像的大小,而不会丢失原始图像的EXIF数据(关于日期的元数据,相机模型等).关于python和图像的所有谷歌搜索指向我正在使用的PIL库,但似乎无法保留元数据.我到目前为止的代码(使用PIL)是这样的:
img = Image.open('foo.jpg')
width,height = 800,600
if img.size[0] < img.size[1]:
width,height = height,width
resized_img = img.resize((width, height), Image.ANTIALIAS) # best down-sizing filter
resized_img.save('foo-resized.jpg')
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?或者我可以使用的其他图书馆?
我试图以90度角旋转它来操纵base64编码图像.在这个操作之后,我想将它转换回base64字符串.但遗憾的是无法实现这一目标.
这是我到目前为止所做的:
image_string = StringIO(base64.b64decode(base64_string_here))
image = Image.open(image_string)
angle = 90
rotated_image = image.rotate( angle, expand=1 )
Run Code Online (Sandbox Code Playgroud)
恩迪帮我如何将rotate_image转换为base64字符串.
这dir()是rotate_image:
[ '_Image__transformer', '__doc__', '__getattr__', '__init__', '__module__', '__repr__', '_copy', '_dump', '_expand', '_makeself', '_new', '类别',"转换", '复制', '剪裁', '草稿', '过滤器', '格式', 'format_description', 'fromstring', 'getbands', 'getbbox', 'getcolors', '的GetData', 'getextrema' , 'getim', 'GetPalette进行', 'getpixel', 'getprojection', '直方图', '聊天', '信息', '负载', '模式', '偏移', '调色板', '粘贴',"点','putalpha','putdata','putpalette','putpixel','量化','只读', '调整', '旋转', '拯救', '寻求', '秀', '大小', '分裂', '告诉', '缩略图', 'tobitmap', '的toString',"转换','transpose','验证']