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')

 

转载于:https://my.oschina.net/u/2411067/blog/861590

你可能感兴趣的:(python3使用Image库由rgb值生成jpg图片)