Suchergebnisse

Suchergebnisse 1-14 von insgesamt 14.

  • Benutzer-Avatarbild

    Hi @kafffee Probiere mal den ImageAnimator. (Versteckter Text) Ansonsten kannst auch selbst alles per GDI+ zeichnen. GIF laden, Anzahl der Frames auslesen, Pausenzeiten zwischen den Frames auslesen usw usw und jedes Frame (Einzelbild) auf die PB zeichnen.

  • Benutzer-Avatarbild

    @kafffee Zitat: „​ Aber wenn ich das in Bitmap konvertier wird wahrscheinlich auch nix mit Transparenz zu machen sein oder? “ Was genau meinst Du mit "Transparenz"? Bei einer "animierten" GIF (8bppIndexed) ist die transparente Farbe entweder global (für alle Frames) oder pro Frame in der ColorTable (256 Farben im ARGB-Format) festgelegt. Bedeutet das jedes Frame auch mit seinem transparenten Bereich auf die PB gezeichnet wird (verhält sich daher so wie bei einem 32bppARGB Bitmap). Du kannst aber…

  • Benutzer-Avatarbild

    @kafffee Zitat: „​ nur scheint das Programm den .SizeMode = Zoom zu ignorieren“ Der SizeMode funktioniert nur, wenn man der PB direkt ein Bitmap/Image zuweist und nicht für das zeichnen eines Bitmaps/Image in das Graphics-Objekt der PB. Wenn dann müsstest eine Skalierung berechnen der das Einzelframe entsprechend proportional sklaliert zeichnen. Zitat: „​ kann man vielleicht irgendwie festlegen, dass das GIF immer bis "zum Ende" abgespielt wird“ Dachte die GIF soll stoppen wenn die Maus die PB v…

  • Benutzer-Avatarbild

    @kafffee Hier mal so meine Idee umgesetzt mit dem ImageAnimator (Stop nach dem kompletten Abspielen des GIF und Zoom) (Versteckter Text)

  • Benutzer-Avatarbild

    @kafffee Zitat: „​Sehr cool auch die Möglichkeit in Zeile 47 sozusagen das Bild, zu dem "zurückgekehrt" wird, festzulegen...“ Ist eigentlich kein Festlegen des Startbildes. Ist eher sowas wie wenn animCurrentFrame > animFrameCount ist, ist ja schon wieder das erste Frame gezeichnet, die Animation wird gestoppt und animCurrentFrame = 1 (erstes Frame) gesetzt. Zitat: „​Das Ganze funktioniert aber nur wenn man das GIF direkt über einen Pfad lädt“ Nö, hab mal meine GIF als Ressource eingebunden und …

  • Benutzer-Avatarbild

    @kafffee Wenn Du ImageAnimator.StopAnimate und danach irgandwann wieder ImageAnimator.Animate, fängt die GIF wieder mit dem ersten Frame an. Da kannste machen nix. Nimm dem Code von VaporiZed. Der ist fexibler als mein Code. @RodFromGermany Zitat: „Nicht "nicht angezeigt" sondern "nicht animiert".Ich hab mal ein Tut verzapft zur Komposition von GIFs, die werden nicht animiert.​“ Wenn Du die Windows Imaging Componet (WIC) verwendest, kannst Du animierte GIFs erstellen und über ein Interface IMeta…

  • Benutzer-Avatarbild

    @RodFromGermany falls Du Dich dafür interessierst, hier gibt es einen Link zu den möglichen Metatags die man für eine "animierte" GIF festlegen oder auch auslesen kann. docs.microsoft.com/en-us/windo…data-queries#gif-metadata -> GIF Metadata -> Global Metadata und Frame Metadata

  • Benutzer-Avatarbild

    @kafffee Wenn Du das für mehrere PictureBoxen einsetzen möchtest, ist das ganze doch prädestiniert für eine Klasse die den ganzen Code enthält. Entsprechend wird dann für jede PB eine Instanz dieser Klasse erstellt. Entweder Du übergibst entsprechende Parameter (GIF, StartFrame, PictureBox usw) bereits im Constructor der Klasse oder später per Properties. Eine Sub/Funktion zum starten oder stoppen der Animation und was man noch so braucht (Events usw).

  • Benutzer-Avatarbild

    @kafffee Das überlasse ich Dir ob Du ein Control (DLL) draus machst. Ich wäre für eine ganz normale Klasse. Vllt eine Klasse die von PictureBox erbt (auch ein Control ohne DLL) mit erweiterten/zusätzlichen Properties. Warum? Einfacheres Debugging, Haltepunkte setzen, Code im Einzelschritt durchsteppen usw usw. What ever. Tja Fehlermeldungen, und welche? Code von Deinem Control?

  • Benutzer-Avatarbild

    Zitat von kafffee: „Wie funktioniert denn das mit den vererbten Klassen? ich glaube ich versuch das dann doch mal damit. Wo fang ich da an und wo hör ich auf?“ Wenn Du das nur mal auf die schnelle testen möchtest, kommt die Klasse AnimGifButton direkt hinter "End Class" der MainForm. Also keine extra Klasse. VB.NET-Quellcode (12 Zeilen) nach dem Einfügen des Klasse AnimGifButton direkt hinter "End Class" der Form, das Programm einmal starten! Dann findest Du ganz oben in der Toolbox ein Control …

  • Benutzer-Avatarbild

    Zitat von kafffee: „Soweit, so gut. Nur wo packe ich den Code aus Form1_Load und Form1_Closing rein?“ Nun ja, es ist eine ganz normale Klasse die von PictureBox erbt. Sich also so verhält wie eine PictureBox. Jede Klasse besitzt eine Sub New bzw. Finalize. Für Deinen Fall "Form_Load", könntest Du die ganz normale Eigenschaft Image des Controls verwenden um dem Control eine GIF zuzuweisen (zur Entwurfs- oder zur Laufzeit). Nachteil, sobald Du das Programm startest, läuft auch die GIF in dem Contr…

  • Benutzer-Avatarbild

    @kafffee Auf die schnelle zusammen gezimmert (ohne check ob man hier und da noch was ändern könnte). Damit solltest zurecht kommen bzw kannst Du an Deine Bedürfnisse anpassen. (Versteckter Text)

  • Benutzer-Avatarbild

    @RodFromGermany Zitat von RodFromGermany: „Vorhandene GIFs zerelegen kannst Du mit dem IrfanView“ Ach komm, das proggen wir doch fix selber. (Versteckter Text)

  • Benutzer-Avatarbild

    Zitat von RodFromGermany: „Kann der alle (mindestens) drei Sorten GIF-Formate?“ Also: Mein kleiner Code kann normale, nicht animierte, GIFs (1 Frame) und valide animierte GIFs (mehr als 1 Frame) verarbeiten. Bei nicht validen animierten GIFs, wird halt nur das erste Frame, also so wie bei normalen, nicht animierten, GIFs ausgelesen. Ich weis jetzt nicht wie GDI+ intern prüft ob es sich um eine valide animierte GIF handelt. Daher nur geraten. Vermutlich prüft GDI+ im "Application Extension Block"…