estoy usando código de barras Studio 2011 para pintar un código QR en un Graphics32 - TImage32 de componentes y quiero guardarlo en formato png, pero con el color blanco lo más transparente esto he especificado en el OuterColor de Graphics32.Cómo guardar un archivo png con transparencia?
OnFormCreate acabo
procedure TForm1.FormCreate(Sender: TObject);
begin
psBarcodeComponent1.BarCode := 'some text here...';
end;
y por el momento no tengo el cuadro asignado a un clic de botón Evento
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;
estoy usando la biblioteca de imágenes de Vampyre para convertir el mapa de bits en formato PNG pero con mucho gusto usaré cualquier biblioteca, función y consejo. ¡He estado tratando de hacer esto ahora por casi una semana! He leído y releído la documentación de graphics32 y también de Vampyre Imaging Library, pero nada de lo que intento convertirá el blanco en un color transparente. He tratado clWhite, clWhite32 y también establecer el modoDraw a dmBlend y aplicando la función ChromaKey todo fue en vano, pero la frustración montón, café y un poco de cerveza también;)
Esta es la forma en que estoy guardando ...
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;
Esto se traduce en una miniatura de color Negro y cuando se ve en el visor de fotos de Windows es completamente transparente.
espero que he proporcionado suficiente información y que alguien es capaz de ayudarme.
Chris
lo que ocurre cuando se establece bmp.transparentColor: = clWhite; en lugar de bmp.outerColor: = clWhite? – ComputerSaysNo
No hay ningún miembro para eso en TBitmap32 - También he intentado elegir el OuterColor de un Pixel pero no tiene ningún efecto. bmp.OuterColor: = bmp.Pixel [0,1]; – Shambhala