Bild wie Kreisdiagramm zuschneiden

8

Ich möchte das Bild über ein anderes Bild wie ein Kreisdiagramm zuschneiden, um eine Ladeanimation zu erstellen. Ich dachte daran, Raphaeljs zu verwenden, konnte aber keine Informationen zum Bildausschnitt im Tortendiagramm finden.

Hier sind die Beispielbilder:

Anfangszustand:

Endstatus:

Wie es aussehen sollte:

    
skmasq 18.03.2015, 19:38
quelle

2 Antworten

7

Zeichnen Sie einfach einen halbtransparenten gefüllten Bogen über das Bild (stellen Sie den Alpha-Wert auf Ihren Wert ein):

%Vor% %Vor%

Methode zwei - Compositing

Verwenden Sie zwei Schritte, um den gleichen Bogen oben zu schneiden, um stattdessen Bilder zu verwenden:

  • Bogen zeichnen, dies sind die zusammengesetzten Daten
  • Ändern comp. mode to source-atop - nächste Zeichnung ersetzt den gezeichneten Bogen
  • Zeichnen Sie sekundäres Bild in
  • Ändern comp. Modus zu destination-atop - nächste Zeichnung füllt alle Nicht-Pixel
  • Zeichnen Sie das Hauptbild in

Demo:

%Vor% %Vor%
    
epistemex 18.03.2015, 20:06
quelle
1

Sie werden einen Algorithmus nach folgenden Kriterien benötigen:

  1. Zeichnen Sie Bild A auf Leinwand 1
  2. Leinwand 2 löschen
  3. Zeichnen Sie auf Canvas 2 einen Teilkreis für den aktuellen Zustand des Spinner, gefüllt mit weiß
  4. Blit Bild B auf Leinwand 2, mit dem multiplikativen Mischmodus
  5. Blit Canvas 2 auf Canvas 1 mit Standard (Ersetzen) Blending

Canvas 2 sollte das zweite Bild enthalten, das durch den Abschnitt maskiert wird, den Sie verwenden möchten. Wenn Sie dies auf Canvas 1 überlagern, vorausgesetzt, dass Sie mit der Transparenz richtig umgehen, sollten Sie den gewünschten Effekt erzielen.

Sie können auch zwei SVG-Kreise mit Bildhintergründen verwenden und dies trivial tun, vorausgesetzt, Ihre Zielbrowser unterstützen SVG.

    
ssube 18.03.2015 19:47
quelle