[ todo ] pillow enhancer version 10

2019/06/28 10:12 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
[ todo ] pillow enhancer
@[TOC](項目)

# グラデ関係
- 円とグラデの中心をドラッグ対応にするか?
- 線形グラデ対応

- PyQtでお手軽GUI開発♪―――は可能だったか? 第4回 画面描画編 
http://www7a.biglobe.ne.jp/~thor/novel/column/07.html

```
def paintEvent(self, event):

    canvas = Qg.QPainter(self)                  #画面のPainterを取得する

    #線形グラデーション
    grad = Qg.QLinearGradient(25,0,75,100)      #座標(25,0)~(75,100)間で定義
    grad.setColorAt(0.1, Qg.QColor(Qt.red))     #色の位置の設定
    grad.setColorAt(0.5, Qg.QColor(Qt.green))
    grad.setColorAt(1.0, Qg.QColor(Qt.blue))
    canvas.setBrush(Qg.QBrush(grad))            #画面に描画する
    canvas.drawRect(0,0,100,100)

    #放射状グラデーション
    grad = Qg.QRadialGradient(150,50,50,160,60) #(150,50)を中心、半径50、(160,60)が開始位置
    grad.setColorAt(0.0, Qg.QColor(Qt.white))   #色を指定
    grad.setColorAt(1.0, Qg.QColor(Qt.blue))
    canvas.setBrush(Qg.QBrush(grad))            #画面への描画
    canvas.drawRect(100,0,100,100)

    #円錐形グラデーション
    grad = Qg.QConicalGradient(250, 50, 45)     #座標(250,50)を中心に45度角から開始
    grad.setColorAt(0.0, Qg.QColor(Qt.red))     #色の指定
    grad.setColorAt(0.33, Qg.QColor(Qt.green))
    grad.setColorAt(0.66, Qg.QColor(Qt.blue))
    grad.setColorAt(1.0, Qg.QColor(Qt.red))
    canvas.setBrush(Qg.QBrush(grad))            #画面への描画
    canvas.drawRect(200,0,100,100)
```



----------------

# enhancer usage
```
def init

self.list = [
    [ self.ui.label_* , ImageEnhance.Brightness ] ,
    [ self.ui.label_* , ImageEnhance.Contrast ] ,
    [ self.ui.label_* , ImageEnhance.Color ] ,       # 彩度
    [ self.ui.label_* , ImageEnhance.Sharpness ] ,
]


def *****(self,v):
 for l in self.list:
  if l[0] is self.sender() :
  ******
  break

```


# PIL.Image と PyQt4.QtGui.QImageの相互変換 
グラデ画像は逆変換になるな
http://doloopwhile.hatenablog.com/entry/20100305/1267782841


-------
# 画質の調整

- 透明度アルファ付きのRGBに変換
con4 = image1.convert('RGBA')

- 彩度
from PIL import ImageEnhance    #ImageEnhanceのインポート
con5 = ImageEnhance.Color(image1)
con5_image = con5.enhance(0.4)  # 1が基本
<con5_image>

- コントラストを調整
con7 = ImageEnhance.Contrast(image1)
con7_image = con7.enhance(0.5)  # 1が基本
<con7_image>

- 明度
con9 = ImageEnhance.Brightness(image1)
con9_image = con9.enhance(0.5)  # 1が基本
con9_image

- シャープネス
con11 = ImageEnhance.Sharpness(image1)
con11_image = con11.enhance(0.5)
con11_image

----
# pillowについて調べた

- 公式
https://pillow.readthedocs.io/en/5.2.x/index.html

- エフェクトはここがわかりやすいね
Qtへの変換も
https://qiita.com/pashango2/items/145d858eff3c505c100a

- タグ取得はここ
https://qiita.com/Gen6/items/88c69ab3a0666895e7a8

- pil はQt変換を標準でサポートしてるのか??
https://dungeonneko.hatenablog.com/entry/2015/07/19/142034
Qpixmapに直接読み込むのとどっちが速いか試してみよう

- 画像貼り付け
Python, Pillowで画像に別の画像を貼り付けるpaste
https://note.nkmk.me/python-pillow-paste/
位置指定して小さい画像を貼り付けできる

----
→ [目次に戻る](https://mimemo.io/m/QORbW4qkvOoda0N)

      

項目グラデ関係enhancer usagePIL.Image と PyQt4.QtGui.QImageの相互変換画質の調整pillowについて調べた

グラデ関係

def paintEvent(self, event):

    canvas = Qg.QPainter(self)                  #画面のPainterを取得する

    #線形グラデーション
    grad = Qg.QLinearGradient(25,0,75,100)      #座標(25,0)~(75,100)間で定義
    grad.setColorAt(0.1, Qg.QColor(Qt.red))     #色の位置の設定
    grad.setColorAt(0.5, Qg.QColor(Qt.green))
    grad.setColorAt(1.0, Qg.QColor(Qt.blue))
    canvas.setBrush(Qg.QBrush(grad))            #画面に描画する
    canvas.drawRect(0,0,100,100)

    #放射状グラデーション
    grad = Qg.QRadialGradient(150,50,50,160,60) #(150,50)を中心、半径50、(160,60)が開始位置
    grad.setColorAt(0.0, Qg.QColor(Qt.white))   #色を指定
    grad.setColorAt(1.0, Qg.QColor(Qt.blue))
    canvas.setBrush(Qg.QBrush(grad))            #画面への描画
    canvas.drawRect(100,0,100,100)

    #円錐形グラデーション
    grad = Qg.QConicalGradient(250, 50, 45)     #座標(250,50)を中心に45度角から開始
    grad.setColorAt(0.0, Qg.QColor(Qt.red))     #色の指定
    grad.setColorAt(0.33, Qg.QColor(Qt.green))
    grad.setColorAt(0.66, Qg.QColor(Qt.blue))
    grad.setColorAt(1.0, Qg.QColor(Qt.red))
    canvas.setBrush(Qg.QBrush(grad))            #画面への描画
    canvas.drawRect(200,0,100,100)

enhancer usage

def init

self.list = [
    [ self.ui.label_* , ImageEnhance.Brightness ] ,
    [ self.ui.label_* , ImageEnhance.Contrast ] ,
    [ self.ui.label_* , ImageEnhance.Color ] ,       # 彩度
    [ self.ui.label_* , ImageEnhance.Sharpness ] ,
]


def *****(self,v):
 for l in self.list:
  if l[0] is self.sender() :
  ******
  break

PIL.Image と PyQt4.QtGui.QImageの相互変換

グラデ画像は逆変換になるな
http://doloopwhile.hatenablog.com/entry/20100305/1267782841


画質の調整

  • 透明度アルファ付きのRGBに変換
    con4 = image1.convert('RGBA')

  • 彩度
    from PIL import ImageEnhance #ImageEnhanceのインポート
    con5 = ImageEnhance.Color(image1)
    con5_image = con5.enhance(0.4) # 1が基本
    <con5_image>

  • コントラストを調整
    con7 = ImageEnhance.Contrast(image1)
    con7_image = con7.enhance(0.5) # 1が基本
    <con7_image>

  • 明度
    con9 = ImageEnhance.Brightness(image1)
    con9_image = con9.enhance(0.5) # 1が基本
    con9_image

  • シャープネス
    con11 = ImageEnhance.Sharpness(image1)
    con11_image = con11.enhance(0.5)
    con11_image


pillowについて調べた


→ 目次に戻る