[Lazarus] Need Testers
Mattias Gaertner
nc-gaertnma at netcologne.de
Tue Apr 29 10:50:10 CEST 2008
Valdas Jankūnas wrote:
> Hello,
> how i can read PNG image from Lazarus resources using TLazIntfImage?
> I tried TPortableNetworkGraphic to read transparent PNG from resource
> or file, but in transparent areas of saved PNG image i get random
> garbage.Code:
> img:=TPortableNetworkGraphic.Create;
> img.LoadFromFile(FAILAS_OUT);
> img.SaveToFile(FAILAS_IN);
> img.Free;
> This code is correct? If so i report bug to bugtracker.
When you only loading, the stream loaded from is internally stored, so
when you only save this stream is saved. It should result in an exact
copy of your source.
However if you modify something, then it depends on the widgetset (since
it gets converted to a bitmaphandle first). On Gtk1 or Gtk2 this will
replace your 8bit alpha channel with a 1 bit channel.
> If i doing same test (with file) using TLazIntfImage with
> TFPCustomImageReader and TFPCustomImageWriter, then i get correct
> results, but i not know how using TLazIntfImage load image from
> resource.
See TCustomBitmap loadfromlazarusresource code.
I think somehow after the image is loaded, TPortableNetworkGraphic
thinks something is changed and the original stream isn't saved.
Marc
More information about the Lazarus
mailing list