Как сохранить файл png с прозрачностью?

Я использую Barcode Studio 2011 для рисования QR-кода в компоненте Graphics32 - TImage32 и хочу сохранить его в формате png, но с белым цветом как прозрачное это я указал в OuterColor Graphics32.

OnFormCreate У меня есть только

procedure TForm1.FormCreate(Sender: TObject);
begin
  psBarcodeComponent1.BarCode := 'some text here...';
end;

, и на данный момент у меня есть картина, назначенная событию нажатия кнопки

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;

. Я использую библиотеку изображений Vampyre для преобразования растрового изображения в формат PNG, но я с радостью воспользуюсь любой библиотекой, функцией и советом - я пытаюсь сделать это уже почти неделю! Я прочитал и перечитал документацию по graphics32, а также по Vampyre Imaging Library, но ничто из того, что я пытаюсь сделать, не преобразует белый цвет в прозрачный. Я пробовал clWhite, clWhite32, а также установил drawMode на dmBlend и применил функцию ChromaKey - все безрезультатно, но много разочарований, еще кофе и немного пива;)

Вот как я это сохраняю ...

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 он становится полностью прозрачным.

Я надеюсь, что я предоставил достаточно информации и что кто-то может мне помочь.

Крис

5
задан Shambhala 4 August 2011 в 21:59
поделиться