Здравствуйте уважаемые!
Скачал замечательную программу - Phatch - это программа для пакетной обработки изображений. Мне необходимо уменьшить изображение, добавить к нему одноцветную границу, наложить маску и сохранить. Не так уж сложно все это сделать с помощью этой программы, но появилась одна загвоздочка - фоны изображений незначительно (но заметно) различаются по оттенку, а плагин, который увеличивает границы требует конкретно указывать цвет. Плагины вроде как написаны на питоне (текст плагина Border приведен ниже). Мне необходимо что бы цвет границы не задавался очно, а например брался из первого пикселя изображения. Какую графическую библиотеку использует Phatch я не знаю. Поможет наверное, если просто приведете функцию взятия цвета первого пикселя jpg изображения, а уж плагин я допишу.
Заранее спасибо!
UPD: Справился сам, помощь не требуется! =)
from core import models
from core.translation import _t,new
#---PIL
def init():
global Image, ImageOps
import Image, ImageOps
def border(image, size=1, colour=0):
"""Adjust brightness from black to white
- size: -1(black) 0 (unchanged) 1(white)
- repeat: how many times it should be repeated"""
if size == 0:
return image
if size < 0:
#crop
image = ImageOps.crop(image,border=-size)
else:
#expand
image = ImageOps.expand(image,border=size,fill=colour)
return image
#---Phatch
class Action(models.Action):
label = _t('Border')
author = 'Stani'
email = 'spe.stani.be@gmail.com'
init = staticmethod(init)
pil = staticmethod(border)
version = '0.1'
tags = [_t('size'),_t('border')]
update_size = True
__doc__ = _t('Crop or add border to all sides')
def interface(self,fields):
fields[_t('Size')] = self.PixelField('1px',choices=['1','2','5'])
fields[_t('Colour')] = self.ColourField('#000000')
def values(self,info):
#pixel fields
x0, y0 = info[new('Pil','Size')]
return super(Action,self).values(info,pixel_fields={'Size':(x0+y0)/2})
icon = \ *код иконки*