私はGraphics32-TImage32コンポーネントにQRコードをペイントするためにBarcode Studio 2011を使用しています。これをpng形式で保存しますが、白い色は透明で、これはGraphics32のOuterColorで指定しました。透明にしてpngファイルを保存するには?
OnFormCreate私はちょうど
procedure TForm1.FormCreate(Sender: TObject);
begin
psBarcodeComponent1.BarCode := 'some text here...';
end;
を持っていると私はボタンのClickイベントに割り当てられた絵を持っている瞬間のため
procedure TForm1.Button8Click(Sender: TObject); // Paint the barcode
var
bmp: TBitmap32;
Coords: TRect;
begin
bmp := TBitmap32.Create;
bmp.SetSize(image.Width, image.Height);
bmp.Canvas.Brush.Color := color;
bmp.Canvas.Rectangle(-1, -1, image.Width+2, image.Height+2);
bmp.DrawMode := dmTransparent;
bmp.OuterColor := clWhite;
// make Coords the size of image
Coords := Rect(0,0,image.Width,image.Height);
psBarcodeComponent1.PaintBarCode(bmp.Canvas, Coords);
image.Bitmap.Assign(bmp);
end;
私はPNG形式にビットマップを変換するVampyreイメージングライブラリを使用していますしかし、私は喜んで、ライブラリ、機能、およびアドバイスを使用します - 私はこれを今一週間近くしようとしています!私は読んでから、graphics32とVampyre Imaging Libraryのドキュメントを再読み込みしましたが、私が試したことは何も白を透明な色に変換するものではありません。
...これは私がそれを保存しています方法です)を、私はまたclWhite、clWhite32ともdmBlendに描画モードを設定し、無駄にすべてのクロマキーを適用するが、たくさんの不満、コーヒーと少しビールを試してみました
procedure TForm1.Button7Click(Sender: TObject); // Save with Vampyre Imaging Lib
{ Try to save in PNG format with transparancy }
var
FImage: TSingleImage;
begin
FImage := TSingleImage.Create;
ConvertBitmap32ToImage(image.Bitmap, FImage);
FImage.SaveToFile('VampyreLibIMG.png');
end;
この結果、黒色のサムネイルが表示され、Windowsフォトビューアーで表示すると完全に透明になります。
私は十分な情報を提供し、誰かが私を助けてくれることを願っています。
あなたはDelphiのバージョンを指定していないが、あなたのデルファイのバージョンが「PngImage」(私はそれがD2009の+に付属していると信じて)コード怒鳴るが完璧に動作(GimpのとWindowsフォトビューアーにロードされ、それを持っている場合は、クリス
bmp.transparentColor:= clWhiteを設定するとどうなりますか? bmp.outerColorの代わりに:= clWhite? – ComputerSaysNo
TBitmap32にはそのメンバーはありません - 私はPixelからOuterColorを選んでみましたが効果はありません。 bmp.OuterColor:= bmp.Pixel [0,1]; – Shambhala