3

PNGからJPGに変換する必要があります。

ただし、iMagickはそれに黒い背景を追加します。

私はPHP用のこの質問を見て、次のようにJava用に同じものを書き込もうとしました。

// create the a jpg image
ConvertCmd cmd = new ConvertCmd();
// create the operation, add images and operators/options
IMOperation op = new IMOperation();
op.addImage(brandingURL);
op.format("JPEG");
op.composite();
op.background("white");
op.addImage(imageLocation);
//op.transparent();
// execute the operation
cmd.run(op);

それでも、画像の背景は黒になります。

私は何が欠けていますか?

4

2 に答える 2

2

私はこのようなコードを書かなければなりませんでした:

 Info imageInfo = new Info(brandingURL, true);
 IMOperation op = new IMOperation();
 op.addImage(brandingURL);
 op.size(imageInfo.getImageWidth(), imageInfo.getImageHeight());
 op.addImage("xc:white", "c://write//test.jpeg");
 op.addImage("c://write//test.jpeg");
 CompositeCmd composite = new CompositeCmd();
 composite.run(op);
于 2012-04-29T13:31:01.647 に答える
0

の呼び出しはbackground必要ありません。ドキュメントによると、デフォルトの背景は白です。これは、おそらくあなたの写真の1つに、デフォルトを上書き/ブロックする黒い背景があることを示唆しています(おそらくbrandingURL?)。

ImageMagickの上記のリンクされたドキュメントからの引用:

-背景色

背景色を設定します。

色は、-fillオプションで説明されている形式を使用して指定されます。デフォルトの背景色(画像に何も指定されていないか、見つからない場合)は白です。

画像の1つが(黒の)背景を指定しているという理由だけでそれを使用している場合は、その画像backgroundを追加する前または操作の最後に呼び出しを移動することをお勧めします(ImageMagickがこれに対してどのように動作するかわからない)

于 2012-04-29T12:07:38.533 に答える