Results 1 to 4 of 4

Thread: png kleuren

  1. #1
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382

    png kleuren

    Ik krijg het niet voor elkaar...
    Ik wil een 32 bits png maken een zelf pixels tekenen met alpha waarde.
    CreateBlank(COLOR_RGBALPHA, 8, 32, 32) lukt nog :-)
    Hoe zet een een kleur van een pixel op RGBA waarden? En waarom lijkt het canvas niet te werken?
    En is er een scanline met de 32 bits pixel waarden beschikbaar?
    Tips welkom.

  2. #2
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Eindelijk gelukt. Scanline bevat b+g+r waarden, AlphaScanline bevat alphachannel waarden.

  3. #3
    Voor de volledigheid een stukje code voor als anderen tegen hetzelfde aanlopen.

    Code:
    var
      Png: TPngImage;
      x, y: Integer;
      RgbSl: pRGBLine;
      AlphaSl: PByteArray;
    begin
      Png := TPngImage.Create;
      try
        Png.CreateBlank(COLOR_RGBALPHA, 8, 800, 600);
    
        for y := 0 to Png.Height - 1 do
        begin
          RgbSl := Png.Scanline[y];
          AlphaSl := Png.AlphaScanline[y];
    
          for x := 0 to Png.Width - 1 do
          begin
            RgbSl^[x].rgbtRed   := $FF;
            RgbSl^[x].rgbtGreen := 0;
            RgbSl^[x].rgbtBlue  := 0;
            AlphaSl^[x]         := $80;
          end;
        end;
    
        Image1.Picture.Graphic := Png;
      finally
        Png.Free;
      end;
    end;

  4. #4
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    @havezet: indeed!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •