![]() |
Bildbearbeitung: Linien verstärken, gibt's sowas?
Hallo,
ich habe eine Grafik, die viele bunte Linien enthält, die sich schneiden und beliebige Formen haben können. Leider sind die Linien nur einen Pixel breit und wenn ich das ausdrucke, kann man nur ahnen, dass da eine Linie sein könnte. Gibt es die Möglichkeit diese Linien mit einem Tool zu verdicken? Grüße, Matze |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Villeicht das Teil Vektorisieren ?
An sonsten bleibt nicht viel übrig, zB. "Resize". |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Resize? Das Bild ist groß genug. ;)
Hm, dann muss ich mir was anderes überlegen, wie ich das ausdrucken könnte ... |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Gibt es eine Einheitliche Hintergrundfarbe?
Wenn ja, dann entweder jedes Pixel, welches nicht dem Hintergrund entspricht, in ein neues Bild übertragen und dort als etwas größeren Kreis zeichen. Wenn es dabei auch rchteckig sein darf, ginge auch einfach
Delphi-Quellcode:
B wäre der Faktor, um welchen die Pixel vergrößert würden.
BildNew.Width := Bild.Width + B;
BildNew.Height := Bild.Height + B; For x := 0 to B - 1 do For y := 0 to B - 1 do BildNew.DrawTransparent(Bild, x, y); du kannst natürlich X und Y so beeinflußen, daß es einen Kreis einfügt :angel2: Einziges Problem sind Farbübergänge, welche eigentlich bei den Schnittpunkten von Linien entstehen sollten ... hier ist es ja mehr so, daß es mehr kantig überlappende Kreuzungen ergibt. |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Liste der Anhänge anzeigen (Anzahl: 1)
Ja es gibt eine einheitliche Hintergrundfarbe. Ich könnte schon versuchen, selbst etwas zu basteln, wenn es nicht anders geht.
Edit [21:18]: ich habe nun was gebastelt. |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Passt doch. ;)
PS.: der Name "linienfettierer" ist :thumb: |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Schöner wäre es natürlich, wenn ich die Farben nacheinander übermalen würde. Dann würden diese Farbverkuddelungen nicht passieren und sich die Linien sauber überlagern.
Aber das ist dann doch etwas zu aufwändig. ;) |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Klatsch und Tratsch" nach "Multimedia" verschoben.
Mittlerweile eher Multimedia mit K&T-Anteil. *g* |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
procedure LinienFettierer(Image: TBitmap; Background: TColor; Size: Integer);
var x, y, x2, y2, x3, y3, R, G, B, P: Integer; C: TColor; Temp: TBitmap; Mask: Array of Array of Boolean; begin SetLength(Mask, Size, Size); for x := 0 to Size - 1 do for y := 0 to Size - 1 do Mask[x, y] := True;//(x - Size div 2) Temp := TBitmap.Create; try Temp.Width := Image.Width + Size - 1; Temp.Height := Image.Height + Size - 1; for x := 0 to Temp.Width - 1 do for y := 0 to Temp.Height - 1 do begin R := 0; G := 0; B := 0; P := 0; for x2 := 0 to Size - 1 do begin x3 := x - Size div 2 + x2; if (x3 >= 0) and (x3 < Image.Width) then for y2 := 0 to Size - 1 do begin y3 := y - Size div 2 + y2; if (y3 >= 0) and (y3 < Image.Height) and Mask[x2, y2] then begin C := Image.Canvas.Pixels[x3, y3]; if C <> Background then begin Inc(R, GetRValue(C)); Inc(G, GetGValue(C)); Inc(B, GetBValue(C)); Inc(P); end; end; end; end; if P <> 0 then Temp.Canvas.Pixels[x, y] := RGB(R div P, G div P, B div P) else Temp.Canvas.Pixels[x, y] := Background; end; Image.Width := Temp.Width; Image.Height := Temp.Height; Image.Canvas.Draw(0, 0, Temp); finally Temp.Free; end; end; |
Re: Bildbearbeitung: Linien verstärken, gibt's sowas?
:shock: Sehr übersichtlich. :mrgreen:
Da lohnt sich vermutlich auch, das mit ![]() Vielen Dank, das sehe ich mir morgen mal genauer an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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