Autor Beitrag
Boller
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 12.08.07 09:43 
Hallo,

jeder kennt ms word *g*

also man kann dort über einfügen grafik die Bilddatei einfügen

anschließen geht man auf grafik formatieren und dann auf Bild->Bildsteuerung->Farbe

dort kann man die option ausgeblichen einstellen.

Das hat so dann den Effekt als wenn die Grafik zum Wasserzeichen wird.


Wie kann man denn in Delphi ein Bitmap ausbleichen?




danke im vorraus
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: So 12.08.07 10:26 
Also,
ich nehme an, du willst das Bild einfach nur "heller" machen wodurch es an Farbstärke verliert und sich dem Weiß annähert!
Ich hab da zufällig was da.
Damit kannst du das Bild heller machen, als Faktor kannst du zB 1.8 nehmen oder so :-)
www.dsdt.info/tipps/?id=653
Was für ein Zufall, das das auch noch von mir is^^
...
oke,
mfg Fighter#1

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Boller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 12.08.07 20:05 
hmmm deine Funktion hatte ich schon.
ist auch nicht schlecht aber der Clou.

Ms Word macht das wohl noch anders, die genauen werte müßte man haben

Versuch mal eine Grafik in Word auszubleichen wie im 1. Schritt beschrieben, da sieht das ganze schon etwas anders aus.

2. Sache die man in Word sehen kann, wenn man die Grafik z.Bsp. in die Kopfzeile hineinkopiert und danach die Kopfzeile Ansicht Modus verläßt dann wird das Bild auch heller? anders dargestellt.

oder kann man ein 2. Bitmap nur mit $AAAAAA FArbwert mit dem original Bild zusammen mischen?

Bitblt

Aufjedenfall soll das 1.Bild als Wasserzeichen heller ... ausgeblichen dargestellt werden.
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: So 12.08.07 20:31 
Klar, schau die an wie meine Funnktion arbeitet und dann kannst du damit Arbeiten, nur wirst du wohl eher mit den RGB Farben arbeiten :-)

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Boller Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 12.08.07 20:56 
Der Ausgangspunkt:

so habe in Ms Word nur prozentuale Werte gesehen

Helligkeit 79%
Kontrast 15%



Dann habe ich dazu folgende Delphi Routinen, wie muss man die einstellen um an die Prozentualen Werte sich annähern zu können?


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
procedure Helligkeit(Bitmap,                   // Zielbitmap
                       Original : TBitmap;       // Original
                       Value    : integer);       // Wert zw -240 ... + 240
var x,y     : integer;
    Ziel    : ^TRGBTriple;
    Quelle  : ^TRGBTriple;
    n       : byte;
    ar      : array[0..255] of byte;
begin

  n := abs(value);
  if value > 0 then
    for x := 0 to 255 do if integer(x + n) > 255 then ar[x] := 255 else ar[x] := x + n
  else
    for x := 0 to 255 do if integer(x - n) < 0 then ar[x] := 0 else ar[x] := x - n;

  for y := 0 to Bitmap.Height-1 do begin
     Ziel   := Bitmap.Scanline[y];
     Quelle := Original.Scanline[y];
     for x := 0 to (Bitmap.Width-1) do begin
       Ziel^.rgbtBlue  := ar[Quelle^.rgbtBlue];
       Ziel^.rgbtred   := ar[Quelle^.rgbtred];
       Ziel^.rgbtGreen := ar[Quelle^.rgbtGreen];
       inc(Ziel);
       inc(quelle);
     end;
  end;
end;

procedure Kontrast(const Bitmap: TBitmap; value: byte);
var x,y,k: integer;
    Ziel,Quelle: ^TRGBTriple;
    Farbarray: array[0..255] of byte;
    faktor: single;
begin
  faktor := 1 + value /100;
  for x := 0 to 255 do
  begin
    k := Round((integer(x) - 128)*faktor) + 128;
    if k > 255 then Farbarray[x] := 255
    else
    if k < 0 then Farbarray[x] := 0
    else Farbarray[x] := k;
  end;
  for y := 0 to Bitmap.Height-1 do
  begin
    Ziel   := Bitmap.Scanline[y];
    Quelle := Bitmap.Scanline[y];
    for x := 0 to (Bitmap.Width-1) do
     begin
      Ziel^.rgbtred   := Farbarray[Quelle^.rgbtred];
      Ziel^.rgbtblue  := Farbarray[Quelle^.rgbtblue];
      Ziel^.rgbtgreen := Farbarray[Quelle^.rgbtgreen];
      inc(ziel);
      inc(quelle);
     end;
  end;
end;

Mein Aufruf ist folgender:
ausblenden Delphi-Quelltext
1:
2:
    Helligkeit(tbmp,tbmp,85);
    Kontrast(tbmp,15);


Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt