您的位置:首页 > 编程语言 > Python开发

python3使用Image库由rgb值生成jpg图片

2017-03-17 00:00 686 查看
摘要: 使用python3的Image库,由rgb值生成jpg图片。

安装Image库(参考网络):

Image ubuntu14.40安装:

1.安装相应的库和包:
sudo apt-get build-dep python-imaging

2.ubuntu14.04中libfreetype 的头文件在目录/usr/include/freetype2下,但PIL中使用的路径是freetype,所以将原来的目录链接到新建的freetype:
cd /usr/include && sudo ln -s freetype2 freetype

3.安装Image

sudo pip3 install Image

生成图片代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

r'''
learning.py

A Python 3 tutorial from http://www.liaoxuefeng.com 
Usage:

python3 learning.py
'''

from PIL import Image
import re

#生成图片大小
image_size = [480,120]
#rgb数组,会按照image_size来生成色块,再拼成整图
rgb = {
"001": [
["d1c3ba","a88c81","745550","4f3935"],
["adb2b5","8496ae","436a95","2c314f"]
],
"002": [
["dcb39f","c4a094","6e4445","3f282e"]
],
"003": [
["edcfc5","f6beb1","daa3ad","c7bba1","9bada5","a89586","81594d"]
]
}

#将十六进制的字符串拆分为十进制的int值:r,g,b
def change_rgb(hex_rge_str):
if len(hex_rge_str)<6:
return
str_hex_list = re.findall(r'(.{2})',hex_rge_str)
rgb_list = []
for str_hex in str_hex_list:
rgb_list.append(int(str_hex, 16))
return tuple(rgb_list)

#生成图片
def make_image_rgb(rgb_dict):
if not rgb_dict:
return
for color in rgb_dict.keys():
image_rgb = rgb_dict[color]
if not image_rgb or not image_rgb[0]:
continue
wide = image_size[0] // len(image_rgb[0])
hight = image_size[1] // len(image_rgb)
im = Image.new('RGB', (wide*len(image_rgb[0]),hight*len(image_rgb)), 1)
for row in range(len(image_rgb)):
for column in range(len(image_rgb[row])):
rgb_tuple = change_rgb(image_rgb[row][column])
im.paste(rgb_tuple,(wide*column,hight*row,wide*(column+1),hight*(row+1)))
# for i in range(wide*column,wide*(column+1)):
#     for j in range(hight*row,hight*(row+1)):
#         im.putpixel((i,j),rgb_tuple)
path = color.replace(' ','')
im.save("/Users/yandengbang/Documents/image_%s.jpg" % path)
#print(im.getpixel((200,0)))

print('-------->>>begin.....')

make_image_rgb(rgb)

print('-------->>>......end')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python3 Image rgb 图片