AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Gif bei verkleinerter Bildauflösung farblich stark veränder
Thema durchsuchen
Ansicht
Themen-Optionen

Gif bei verkleinerter Bildauflösung farblich stark veränder

Ein Thema von Hallo_Thomas · begonnen am 13. Sep 2005 · letzter Beitrag vom 25. Sep 2005
Antwort Antwort
Seite 2 von 4     12 34      
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#11

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 13. Sep 2005, 22:01
Irgendwie versag ich hier schon beim einfachsten, TBitmap32, undefinierter begriff.


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GR32_Image;

type

  TForm1 = class(TForm)
    Image321: TImage32;
     procedure CromaKey(ABitmap: TBitmap32; TrColor: TColor32);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure CromaKey(ABitmap: TBitmap32; TrColor: TColor32);
var
  P: PColor32;
  C: TColor32;
  I: Integer;
begin
  TrColor := TrColor and $00FFFFFF; // erase alpha, (just in case it has some)
  with ABitmap do
  begin
    P := PixelPtr[0, 0];
    for I := 0 to Width * Height - 1 do
    begin
      C := P^ and $00FFFFFF; // get RGB without alpha
      if C = TrColor then // is this pixel "transparent"?
        P^ := C; // write RGB with "transparent" alpha back into the SrcBitmap
      Inc(P); // proceed to the next pixel
    end;
  end;
end;

end.
Angehängte Dateien
Dateityp: zip gr32_143.zip (291,5 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 13. Sep 2005, 23:10
uses GR32;
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 12:48
@Dizzy Danke, das hat mich schon 1, 2 schritte dem Ziele näher gebracht.


Wie wende ich diese Procedure auf TImage32 an?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, GR32_Image,GR32;

type
  TForm1 = class(TForm)
    Image321: TImage32;
    procedure CromaKey(ABitmap: TBitmap32; TrColor: TColor32);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CromaKey(ABitmap: TBitmap32; TrColor: TColor32);
var
  P: PColor32;
  C: TColor32;
  I: Integer;
begin
  TrColor := TrColor and $00FFFFFF; // erase alpha, (just in case it has some)
  with ABitmap do
  begin
    P := PixelPtr[0, 0];
    for I := 0 to Width * Height - 1 do
    begin
      C := P^ and $00FFFFFF; // get RGB without alpha
      if C = TrColor then // is this pixel "transparent"?
        P^ := C; // write RGB with "transparent" alpha back into the SrcBitmap
      Inc(P); // proceed to the next pixel
    end;
  end;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#14

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 13:00
CromaKey(Image321.Bitmap, $00FF00FF); //rosa soll transparent werden Wenn ich das richtig verstanden habe, dann macht diese Funktion aus bestimmt farbigen Pixeln (z.B. rosa) ein transparentes Bild. Nur dann müsste noch folgende Zeile ersetzt werden:
        P^ := C; // write RGB with "transparent" alpha back into the SrcBitmap durch
        P^ := C or $FF000000; // write RGB with "transparent" alpha back into the SrcBitmap
Sonst wird doch der Alpha-Kanal von den rosa Pixeln weggegeben und nicht dazu...

LG, ich
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#15

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 13:07
Das ist doch der Sinn der Prozedur: jedem Pixel, das mit dem ColorKey übereinstimmt, wird der Alphakanalwert $00, also voll transparent, zugewiesen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#16

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 15:11
Aaaah, jetzt ist der Groschen gefallen. $00 ist ganz transparenz, ich habe geglaubt $FF...
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#17

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 15:47
Ich glaub ich brauch hier echt noch eh bissl Starthilfe,, wie verbinde ich aber die Procedur mit dem Image32?
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#18

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 15:57
Irgendwann lädst du ja dein Bild, ev. bei einem Button-Click oder im OnCreate-Event?
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#19

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 16:01
Etwas grundlegendes:
Bevor du dich mit der GR32-Lib beschäftigst, solltest du die Grundlagen der VCL-Komponenten verstanden haben. TImage und TImage32 sind beide kein Speicher für Bilder, sondern "nur" Controls, die ein Hier im Forum suchenOffScreenBitmap auf ihrer Canvas darstellen. Dieser Irrglaube wird z.B. dadurch unterstützt, dass die vermeintliche TImage-Canvas einfach die Canvas des TBitmaps ist, der Programmierer aber glaubt, er arbeite mit dem Image selbst. Das Speichermedium für Bitmaps ist also TBitmap bzw. TBitmap32, diese kannst du über TImage.Picture.Bitmap bzw. TImage32.Bitmap32 ansprechen, und diese musst du auch an die diversen Grafikroutinen (wie diese hier) übergeben.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#20

Re: Gif bei verkleinerter Bildauflösung farblich stark verä

  Alt 14. Sep 2005, 16:23
@ Delphi-Freak

Es wird im OnCreate geladenund eins ist auch schon da, könnte manaber auch noch auf OnCreate umstellen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz