1

私は画像の背景にある黒いピクセルを透明にしようとしています。このために、私は以下の関数を書いた。次に、画像(黒いピクセルで囲まれた中央の車)をコピーし、最初のものをゆっくりと移動させます。私は最初のイメージがその部分が透明であったはずなので、矩形の境界線を表示せずにその下にコピーを表示することを期待していました。しかし、私は希望の効果を得ることはありません。誰か私が行方不明を知っていますか?PILの透過性がうまくいかないようです。

def makeImageTransparent(img): 
    img = img.convert("RGBA") 
    datas = img.getdata() 
    newData = [] 
    ii = 0 
    for item in datas: 
    if item[0] == 0 and item[1] == 0 and item[2] == 0: 
     newData.append((0, 0, 0, 0)) 
     ii = ii + 1 
    else: 
     newData.append(item) 
    print str(ii) 
    img.putdata(newData) 
    return img 

答えて

1

私は、透明性を機能させるために方法を見つけ出すことができなかったので、私はちょうど私が直接に貼り付けた画像のバイトを更新し、私自身のペースト法を作成し、これは私に所望の効果を得ました。

def pasteImage(img, bigim, posn): 
    pixdata = img.load() 
    width, height = img.size 
    mainpixdata = bigim.load() 
    for y in xrange(height): 
    for x in xrange(width): 
     if pixdata[x, y] != (0, 0, 0, 0): 
      mainpixdata[x+posn[0], y+posn[1]] = pixdata[x,y] 
関連する問題