AGB  ·  Datenschutz  ·  Impressum  







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

Vignette effect

Ein Thema von WojTec · begonnen am 15. Sep 2010 · letzter Beitrag vom 20. Sep 2010
Antwort Antwort
Seite 2 von 2     12   
WojTec

Registriert seit: 17. Mai 2007
480 Beiträge
 
Delphi XE6 Professional
 
#11

Re: Vignette effect

  Alt 18. Sep 2010, 18:36
You are great! This is much faster than my method: I draw white shape on black or grey (or in other grey scale color) background, apply blur and finally blend with image - effect is powerful, but blur part is very slow if greater radius is used.

Can I ask yet one more question? Your nice brightness function generates circle - is possible to use ellipse in image orientation?
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#12

AW: Vignette effect

  Alt 18. Sep 2010, 20:58
You could also apply this on an ellipse. The main idea is, to reduce the brightness depending on the distance to the edge.
So you have the width/height and the location (x, y). Now you must change the inner/outer radius from a absolute to a relative value.

Argh at the moment I'm too tired to explain this complete.

Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#13

AW: Vignette effect

  Alt 18. Sep 2010, 23:28
Delphi-Quellcode:
function CalcVignetteBrightness(X, Y: Single): Single;
var
  distance : Single;
  inner_radius, outer_radius, : Single;
begin
  inner_radius := 50;
  outer_radius := 150;
  x := x * 0.75; // <= try this

  // calculate the distance from the origin (center of the image)
  distance := SQRT(SQR(x) + SQR(Y));
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

AW: Vignette effect

  Alt 19. Sep 2010, 06:43
Mal eine Frage, sollte das Ergebnis nicht so aussehen ? (Image 1)
Bei eurer Methode kommt das dabei heraus. (Image 2)
Miniaturansicht angehängter Grafiken
pictures.jpg  
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser

Geändert von turboPASCAL (19. Sep 2010 um 06:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#15

AW: Vignette effect

  Alt 19. Sep 2010, 10:48
Moin,
hast du sein Bugfix eingebaut:
Ok, working, but not exactly as should - darker should be near edges, not center as is now
Hmm ,there is a little bug:
Delphi-Quellcode:
  else if distance <= outer_radius then
    // decreasing Brightness from 100% downto 0%
// result := (distance - inner_radius) / (outer_radius - inner_radius) // wrong
    result := (outer_radius - distance) / (outer_radius - inner_radius)
MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

AW: Vignette effect

  Alt 19. Sep 2010, 11:45
Wie meinst du denn das ? I don't speak English.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
WojTec

Registriert seit: 17. Mai 2007
480 Beiträge
 
Delphi XE6 Professional
 
#17

Re: Vignette effect

  Alt 19. Sep 2010, 12:03
X multiply something is nice, I added support for ellipse based on image oriantation. Thanks guys

My current slow methed I told yesterday (based on blured shape) - do you know method fast like the one by @sx2008, but with any shape (rectangle, rounded rectangle, ellipse and any other)?

PS: @sx2008, your algorithm is named?
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#18

AW: Vignette effect

  Alt 20. Sep 2010, 13:18
Wie meinst du denn das ? I don't speak English.
Er hat bei der Subtraktion die zwei Werte vertauscht. Die musst du auch vertauchen, damit es passt. Es ist nämlich der Faktor wie hell das Pixel ist. 1 = 100 % = ursprüngliche Helligkeit und 0 = 0 % = komplett dunkel ist der Rückgabewert.
Jetzt gibt es ein Radius der bestimmt, ab wann es nicht mehr dunkler wird. Und es gibt auch einen Radius der bestimmt ab wann es nicht mehr heller wird.

Jetzt nimmt er den Abstand dazwischen, d.h. den Radius (das steht unter den Bruch). Und zusätzlich berechnet er über den Bruch, wie weit der Punkt vom Mittelpunkt entfernt ist (distance) und setzt das in Relation zum äußeren Radius (outer_radius). Umso größer die Distanz zum Mittelpunkt umso kleiner wird der unterschied zum äußeren Radius, somit sinkt der Wert über den Bruch und damit der komplette Bruch.

Meine Theorie ist, dass du die falsche Version genommen hast, zumindest sieht das invertierte so aus.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:18 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