AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bildbearbeitung: Linien verstärken, gibt's sowas?

Bildbearbeitung: Linien verstärken, gibt's sowas?

Ein Thema von Matze · begonnen am 29. Sep 2009 · letzter Beitrag vom 1. Okt 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 19:12
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
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 20:14
Villeicht das Teil Vektorisieren ?

An sonsten bleibt nicht viel übrig, zB. "Resize".
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 20:25
Resize? Das Bild ist groß genug.

Hm, dann muss ich mir was anderes überlegen, wie ich das ausdrucken könnte ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 20:30
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:
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);
B wäre der Faktor, um welchen die Pixel vergrößert würden.
du kannst natürlich X und Y so beeinflußen, daß es einen Kreis einfügt


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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 20:37
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.
Miniaturansicht angehängter Grafiken
linienfettierer_216.png  
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 21:26
Passt doch.

PS.: der Name "linienfettierer" ist
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 21:33
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.
  Mit Zitat antworten Zitat
29. Sep 2009, 21:41
Dieses Thema wurde von "Matze" von "Klatsch und Tratsch" nach "Multimedia" verschoben.
Mittlerweile eher Multimedia mit K&T-Anteil. *g*
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#9

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 22:24
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;
Miniaturansicht angehängter Grafiken
unbenannt_130.png  
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Bildbearbeitung: Linien verstärken, gibt's sowas?

  Alt 29. Sep 2009, 22:28
Sehr übersichtlich.
Da lohnt sich vermutlich auch, das mit Delphi-Referenz durchsuchenScanLine (tolle, neue OH-Tags) zu lösen.

Vielen Dank, das sehe ich mir morgen mal genauer an.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:23 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