2012-02-14 6 views
1

私は、異なる角度でお互いに積み上げられたポラロイド様の画像を生成するウェブサイトを持っています。 これまではすべてうまくいっていましたが、今は透明な.pngの周りに黒い背景があります。
問題はhereです。最後のアルバムの画像はすべて乱されています。回転した透明な画像の上に不要な黒い背景を写します

私はimagemagick(6.5.4.7-3.fc12)を使用しています。

私のコマンドは次のようなものになります:最初のものはforeachのwhitin含まれているとPNG画像の束を生成している
は異なる角度
convert '{$sf}' -auto-orient -thumbnail 120x120 -gravity center -bordercolor snow -background black -polaroid {$angle} {$i}.png

で回転させ、2番目のコマンドは、以前に生成された画像を受け取り、toghaterそれらをスタック
convert '*.png' -background transparent -alpha on -gravity center -layers merge -extent 190x190 +repage -thumbnail 115x115 -gravity center -extent 120x120 'result.png'

私の知る限りは、デバッグのになったとして、黒の背景には、すでに最初のコマンドで生成された画像中に存在していると私は、画像を回転させたときに、彼らはのみ表示されます。 +polaroidの代わりに-polaroid 0のみを使用すると、結果の画像は正常です。
私の推測では、問題はコードそのものではなく、むしろImageMagickや何かが私のサーバー上でアップグレードされたことであり、それはこの完全な混乱を開始しました。

私はまた、-alphaと他にも私がimagemagickのドキュメントで見つけることができるすべての種類の組み合わせを試してみましたが、それは透明度にわずかに関連していますが、何も動作しないようです。

答えて

1

私の問題の解決策はImageMagickを再インストール/アップデートすることでした。

0

最初の行に-backgroundを 'black'に設定しました。つまり、あなたは透明性を得られません。それを 'none'に設定すると動作しますか?

編集:

import os 
import random as ra 

for i in range(10): 
    image = 'convert C:/image.png -auto-orient -thumbnail 120x120 -gravity center -bordercolor snow -background none -polaroid '+str(ra.uniform(0,360))+' C:/test/image_polaroid_'+str(i)+'.png' 
    os.system(image) 

image = 'convert -size 500x500 xc:transparent C:/test/result.png' 
os.system(image) 

for i in range(10): 
    image = 'composite -gravity center C:/test/image_polaroid_'+str(i)+'.png C:/test/result.png C:/test/result.png' 
    os.system(image) 

編集2:私は最終的に問題は私のconvertコマンドではなかったという結論になったテストのすべての種類の後

import os 
import random as ra 

for i in range(10): 
    image = 'convert C:/image.png -background none -polaroid 0 C:/test/image_polaroid_'+str(i)+'.png' 
    os.system(image) 
    image = 'mogrify -rotate '+str(ra.randint(0,360))+' -background none C:/test/image_polaroid_'+str(i)+'.png' 
    os.system(image) 
+0

その背景には(私の知る限り)ポラロイド影用に設定されている...しかし、私はすでに、「なし」と「透明」にちょうど同じ結果で、確認するためにことを設定してみました。私が変更するものは何も影響を与えていないようです。 –

+0

@JoeBlack最初の行に '-alpha on'を追加しても動作しません。 –

+0

'-alpha on'は他のアルファ設定と全く同じように '-alpha set'も役に立ちません。 –

1

//不要な黒白の背景をromoveし、透明なバックグラウンドにします。

  ImageInfo info1 = new ImageInfo(
      "/opt/apache-tomcat-6.0.18/webapps/newcpclient_branch/upload/sample/ATT00003.jpg"); 
    MagickImage blankImage = new MagickImage(info1); 

    **blankImage.setBackgroundColor(PixelPacket.queryColorDatabase("#FFFF8800"));** 

    blankImage = blankImage.rotateImage(250.0); 
    blankImage.setFileName("/opt/apache-tomcat-6.0.18/webapps/newcpclient_branch/upload/sample/transparent.png"); 
    blankImage.writeImage(info1); 
関連する問題