2017-04-08 2 views
0

ImageDrawモジュールで図面を作成しましたが、この図面の不透明度を調整しませんでした。メイン画像に対してImageDrawの不透明度を調整するにはどうすればよいですか?

ImageDrawを使ってグラデーションマップを作成したとします。そして、元の写真と組み合わせるためにImageChopsの機能を使用しました。コードに問題はありません。私のコードは機能しますが、作成されたグラデーションマップは非常に集中的な色をしています。私はその不透明度を較正したい。私の問題はそれです。

私は、この操作を行うことができますどのように

class Affects(object): 
    def __init__(self,rect,type): 
    ... 
    #'poppy' : [(252,170,11),(205,62,110),(129,2,45)] 
    self.img = PIL.Image.new("RGB", (self.imgx, self.imgy), (255,255,255)) 
    self.draw = PIL.ImageDraw.Draw(self.img) 
    ... 

    def do_chops(self,main,*args): 
    if args[0] == 'blend' or args[0] == 'composite': 
     return getattr(PIL.ImageChops,str(args[0]))(main,self.img,args[1]) 
    else: 
     return getattr(PIL.ImageChops,str(args[0]))(main,self.img) 

    .... 

    def poppy(self,main,*args): 
    grd = libgrd.Gradient(self.maps['poppy'],self.rect) 
    grd.draw(self.type,self.draw) 
    return self.do_chops(main,*args) 

class MyApp(object): 
    def __init__(self): 
    self.img = PIL.Image.open('iam.jpg').resize((640,640)) 
    ... 

    def __poppy(self): 
    Affects(libgrd.Rect(0, 0, 640, 640),'hz').poppy(self.img,'lighter').save('test.jpg') 

次のコード構造?

SOLUTION

class Affects(object): 
    ... 

    def poppy(self,main,*args): 
     ... 
     enh = ImageEnhance.Brightness(self.img) 
     self.img = enh.enhance(0.7) 
     ... 
+1

解決策を以下の回答ボックスに掲載してください。他の人に役立つでしょう。ありがとう! – Hugo

答えて

0

ソリューションは以下です。

class Affects(object): 
    ... 

    def poppy(self,main,*args): 
     ... 
     enh = ImageEnhance.Brightness(self.img) 
     self.img = enh.enhance(0.7) 
     ... 
関連する問題