19
19
# Embedded icon is taken from www.openclipart.org (public domain)
21
23
from core import models
22
24
from lib.reverse_translation import _t
26
30
global Image, ImageFilter, imtools
27
import Image, ImageFilter
28
33
from lib import imtools
30
def rnk(image,radius,rank=50,amount=100):
36
def rnk(image, radius, rank=50, amount=100):
34
r = int((radius*radius-1)*rank)
35
ranked = image.filter(ImageFilter.RankFilter(radius,r))
40
r = int((radius * radius - 1) * rank)
41
image = imtools.convert_safe_mode(image)
42
ranked = image.filter(ImageFilter.RankFilter(radius, r))
37
return imtools.blend(image, ranked, amount/100)
44
return imtools.blend(image, ranked, amount / 100)
41
50
class Action(models.Action):
46
email = 'spe.stani.be@gmail.com'
47
init = staticmethod(init)
48
pil = staticmethod(rnk)
51
__doc__ = _t("Copies the rank'th pixel value")
55
email = 'spe.stani.be@gmail.com'
56
init = staticmethod(init)
57
pil = staticmethod(rnk)
60
__doc__ = _t("Copies the rank'th pixel value")
53
def interface(self,fields):
62
def interface(self, fields):
54
63
fields[_t('Radius')] = self.RankSizeField(self.RANK_SIZES[0])
55
fields[_t('Rank')] = self.SliderField(50,0,100)
56
fields[_t('Amount')] = self.SliderField(100,1,100)
64
fields[_t('Rank')] = self.SliderField(50, 0, 100)
65
fields[_t('Amount')] = self.SliderField(100, 1, 100)
59
68
'x\xda\x01v\x0c\x89\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\