AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PNGImage, lineto/Move mit Alpha?

Ein Thema von Memnarch · begonnen am 28. Mär 2011 · letzter Beitrag vom 3. Apr 2011
Antwort Antwort
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

AW: PNGImage, lineto/Move mit Alpha?

  Alt 29. Mär 2011, 16:17
Ah sehr schön. Habe es mir gerade angeguckt und wirklich sehr schöne Bibliothek, möcht ich scho nach dem austesten nich mehr missen .

Kleine frage noch, ist es möglich auch nur den Alphakanal zu manipulieren? Sodas ich wenn ich z.b eine Linie zeichne nicht die farben sondenr nur den Alphawert manipuliere.

MFG
Memnarch
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#2

AW: PNGImage, lineto/Move mit Alpha?

  Alt 3. Apr 2011, 14:28
Tschuldigt bitte wnen ich nochmal pushe, aber ich konnte zu der frage absolut nichts finden:

Kann ich eine linie zeichnen, bei der ich NUR den Alphakanal, nicht aber die Farben beeinflusse?

EDIT: ist halt nochimmer bei mir so gelößt, das ich zum reinen alpha manipulieren eine zweite bitmap im hintergrund hab auf der ich zeichne und die farbwert als alphawerte in doe vordergrundbitmap kopieren.

MFG
Memnarch

Geändert von Memnarch ( 3. Apr 2011 um 14:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: PNGImage, lineto/Move mit Alpha?

  Alt 3. Apr 2011, 14:53
nur als Anregung ....

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  p:PByteArray;
  x,y:Integer;
  pI:TPngImage;
begin
  pi := TPngImage.Create;
  pi.LoadFromFile('C:\Bilder\IconCollection\ix_ap_all\128x128\shadow\about.png');
  for y := 0 to 100 do
    begin
      p := pi.AlphaScanline[y];
      for x := 0 to 100 do

      p^[x]:= Round(255 * (x * y) / 10000);

    end;
  image1.Picture.Assign(pi);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#4

AW: PNGImage, lineto/Move mit Alpha?

  Alt 3. Apr 2011, 15:05
mh okay, werde ich mir also doch selbst ne zeichen methode schreiben müssen wie?

MFG
Memnarch
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

AW: PNGImage, lineto/Move mit Alpha?

  Alt 3. Apr 2011, 17:03


Wenn du den Alphakanal getrennt bearbeiten möchtest also ohne Einfluss auf das Bild dann ja. ( denk ich mal )

Oder ich verstehe dein Vorhaben nicht so recht. *schulterzuck*
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: PNGImage, lineto/Move mit Alpha?

  Alt 3. Apr 2011, 17:52
Du könntest eventuell eine eigene Combine-Routine schreiben, die nur den Alpha-Channel verändert, und dann die ganz normalen Zeichenroutinen verwenden → siehe GR32_Blend.pas. Wird aber wahrscheinlich etwas „dirty“, da die Combine-Routinen in einem fixen Array gespeichert sind, das so aussieht:

Delphi-Quellcode:
type
  TCombineMode = (cmBlend, cmMerge);

{…}

var

{…}

{ Function Variables }
  CombineReg: TCombineReg;
  CombineMem: TCombineMem;

  BlendReg: TBlendReg;
  BlendMem: TBlendMem;

{…}

  MergeReg: TBlendReg;
  MergeMem: TBlendMem;

{…}

const
  BLEND_MEM: array[TCombineMode] of ^TBlendMem = ((@@BlendMem),(@@MergeMem));
  {…}
Ehrlich gesagt blicke ich gerade selbst nicht durch, was genau der Unterschied zwischen den Blend-, Combine- und Merge-Funktionen ist.

Jedenfalls existieren sie alle in verschiedenen Varianten und werden dynamisch zugewiesen, je nach verfügbaren CPU-Features.

Eventuell könntest du dort rumpfuschen, und die Funktionszeiger auf eine eigene Funktion umbiegen.

Nur so ne Idee...
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#7

AW: PNGImage, lineto/Move mit Alpha?

  Alt 3. Apr 2011, 17:56
@turbopascal: ganz genau, getrentes bearbeiten

@NamenLozer: muss ich mir mal angucken.


MFG
Memnarch
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz