Frage

Ich brauche ein Alpha gemischt Gradient Rahmen um ein Bild zu setzen. Mein Problem ist, die Ecken in Blending, so dass sie glatt sind, wo die horizontalen und vertikalen Gradienten entsprechen. Ich glaube, dass es ein Standard-Algorithmus, der dieses Problem löst. Ich glaube, ich traf sie noch vor vielen Jahren in der Schule. Aber ich habe nicht erfolgreich gewesen, eine Bezugnahme auf eine in mehreren Web-Suche zu finden.

(I eine radiale Füllmuster in der Ecke implementiert, aber der Übergang noch nicht glatt genug.)

Meine Fragen :

  1. Wenn es ein Standard-Algorithmus ist für dieses Problem, was ist der Name es, und noch besser, wie es ist umgesetzt?

  2. Der Verzicht auf jeden Standard-Algorithmus, was ist der beste Weg, um die gewünschten Pixel zu bestimmen Wert einen glatten Gradienten zu erzeugen, in den Ecken? (Machen Sie eine glatte Übergang von der vertikalen Gradient zur Horizontalen Gradient).

Bearbeiten : So stelle ich ein Bild habe ich oben auf ein größeres Bild einfügen wird. Das größere Bild ist einfarbig schwarz und das kleinere Bild ist solide weiß. Bevor ich es einzufügen, mag ich ein die kleinere Bild in die größeren mischen, indem den Alpha-Wert auf der kleineren Bildeinstellung einen transparenten „border“ um, damit er „schwindet“ in das größere Bild zu erzeugen. Richtig gemacht, ich soll auf weiß einen glatten Farbverlauf von Schwarz hat, und ich überall mit Ausnahme der Ecken und der Innenkante.

Am Rande der Gradienten Grenze in der Nähe der Mitte des Bildes, würde der Wert 255 (nicht transparent) sein. Da die Grenze, welche die Außenkante nähert, nähert sich der Alpha-Wert 0. In den Ecken des Bildes, wo die vert & horiz Grenzen treffen, sie am Ende mit, was zu einer diagonalen Linie beträgt. Ich möchte diese Linie beseitigen und einen reibungslosen Übergang haben.

Was ich brauche, ist ein Algorithmus, der den Alphawert (0 - 255) bestimmt. Für jedes Pixel, das eines Bildes als die horizontalen und vertikalen Kanten treffen sich in der Ecke überlappt

War es hilfreich?

Lösung

Vermutlich sind Multiplizieren Sie die beiden Steigungen, wo sie überlappen, nicht wahr?

Keine Ahnung, um einen Standard-Algorithmus. Aber wenn man einen signoid förmigen Gradienten statt einer linearen verwenden, das sollte die sichtbare Kante beseitigen, wo die beiden sich überlappen.

Eine einfache Sigmoidfunktion ist smoothstep (t) = t t (3 - 2 * t), wobei 0 <= t <= 1

Andere Tipps

Wenn Sie sie nicht brauchen Größe veränderbar zu sein, dann können Sie nur einen einfachen Alpha-Map verwenden.

Allerdings habe ich einmal eine einfache Gaußsche fade, mit dem Mittelwert an der Stelle, wo ich es die letzten vollständig undurchsichtig Pixel sein werden wollte. Wenn das macht Sinn.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top