X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=rainbowstream%2Fpure_image.py;h=5e953e9533c7b070579477c1126188e8a053e4d0;hb=fe08f905d28b82df8f0e1ca218475b4acc01bb3b;hp=f4cb751cdd70a6ca70d51bf229d09be2d47475fc;hpb=991c30af2171bac652a3c8402f938e23b955a8d1;p=rainbowstream.git diff --git a/rainbowstream/pure_image.py b/rainbowstream/pure_image.py index f4cb751..5e953e9 100644 --- a/rainbowstream/pure_image.py +++ b/rainbowstream/pure_image.py @@ -1,9 +1,16 @@ from PIL import Image from functools import partial +from .config import * import sys import os +""" +This file is borrowed from following gist: +https://gist.github.com/MicahElliott/719710 +It's too slow in compare with C program. +""" + CLUT = [ # color look-up table # 8-bit, RGB hex @@ -309,20 +316,24 @@ def rgb2short(r, g, b): return RGB2SHORT_DICT[rgb_to_hex(m)] -def image_to_display(path): +def image_to_display(path,start=None,length=None): + rows, columns = os.popen('stty size', 'r').read().split() + if not start: + start = IMAGE_SHIFT + if not length: + length = int(columns) - 2 * start i = Image.open(path) i = i.convert('RGBA') w, h = i.size i.load() - rows, columns = os.popen('stty size', 'r').read().split() - width = min(w, int(columns) - 2 * 6) + width = min(w, length) height = int(float(h) * (float(width) / float(w))) height //= 2 i = i.resize((width, height), Image.BICUBIC) - height = min(height, 30) + height = min(height, IMAGE_MAX_HEIGHT) for y in xrange(height): - print ' ' * 6, + print ' ' * start, for x in xrange(width): p = i.getpixel((x, y)) r, g, b = p[:3]