none
gif Steuerung RRS feed

  • Frage

  • Hallo Experten,

    ich habe ein animiertes Gif, welches ich in einer PictureBox lade. Das funktioniert einwandfrei. Das einzige was nicht funktioniert ist das Stoppen , das Gif wird in einer permanenten Schleife abgespielt. Ich würde es gerne so haben, dass das Gif einmal abgespiet und mit dem letzten Bild endet bzw. stoppt.

    mfg eem monarch

    Dienstag, 6. Dezember 2011 09:18

Antworten

  • Hallo Robert,

    vorab, du bist einer der Besten hier, nach meiner Meinung, aber wo keine Antwort bzw. Lösung ist , kann ich auch nichts in dieser Richtung bewerten oder eine Lösung aufzeigen.

    Am 12.12.2011 habe ich genau das gesagt. Da keine Aussicht auf eine Lösung bestand habe ich den Thread am 13ten beendet.

    Meine Lösung bestand darin auf das animierte Gif zu verzichten :-(

    mfg eem Monarch

    Donnerstag, 15. Dezember 2011 09:04

Alle Antworten

  • Hi,

    das ist keine Frage der Programmierung, sondern eine Frage der Bilddatei selbst. Bei der Erstellung der Datei kann man (ein entsprechendes Programm vorausgesetzt) angeben, ob die Animation nur einmalig oder permanent laufen soll.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 6. Dezember 2011 09:30
    Moderator
  • hi, hmmm

    habe das jetzt mit CorelPaint so eingestellt wird aber trotzdem permanent wiederholt ... Das Gleiche auch noch mal mit Microsoft Gif Animator eingestellt wird aber auch permanent wiederholt...

    noch eine Idee ?

    mfg eem monarch

    P.S: Habe jetzt noch 5 andere Programm genommen überall das gleiche. Wiederholung auf 1 gestellt , wird aber dennoch permant wiederholt....



    Dienstag, 6. Dezember 2011 09:44
  • Hallo Monarch-Falter,

    Eine „nicht so schöne Variante mit DoEvents“ ist folgende:

     Public Class Form1

        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

            Dim a As Integer
            Dim myimage As Image
            myimage = Image.FromFile("C:\Path\test.gif")
            a = myimage.GetFrameCount(System.Drawing.Imaging.FrameDimension.Time)
            '//MessageBox.Show(a)

            Dim memoryStream As New System.IO.MemoryStream

            For f = 0 To a - 1
                myimage.SelectActiveFrame(System.Drawing.Imaging.FrameDimension.Time, f)
                myimage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp)
                PictureBox1.Image = System.Drawing.Image.FromStream(memoryStream)
                Application.DoEvents()
                Threading.Thread.Sleep(500)
            Next

            memoryStream.Close()

        End Sub

     
    End Class

    Noch zum lesen: Is there any method I can use in order to know when animation1 has finished its very first

    Grüße,

    Robert



    Dienstag, 6. Dezember 2011 13:27
    Moderator
  • Hallo Monarch-Falter,

    Hat Dir die Antwort geholfen?

    Grüße,
    Robert

    Montag, 12. Dezember 2011 17:10
    Moderator
  • Nicht wirklich ...

    Ziel ist es ein Gif ablaufen zu lassen mit einem entsprechendem Endbild. Natürlich kann man nach einem Durchlauf das gif durch ein Einzelbild ersetzen, aber das kann es doch nicht  sein oder ...

    Warum greift das Control von VB nicht auf das Merkmal im Gif zurück, welches festlegt ob eine Schleife vorliegt oder nicht ?

    mfg eem monarch.

    P.S. Alle andere Lösungen funzen zwar, aber mit der Überschrift "Nicht schön, aber hauptsache Ziel erreicht". Ich halte es aber wie die Bergsteiger " Der Weg ist das Ziel ...."

    Montag, 12. Dezember 2011 23:49
  • Hallo Monarch-Falter,

    Welche Lösung hast Du jetzt für Dein Problem verwendet? Es wäre schön, wenn Du posten würdest wie es funktioniert hat, denn dann profitieren unter Umständen andere mit dem gleichen Problem davon.

    Ich bitte Dich folgendes lesen und entsprechend reagieren à Forenbeiträge bewerten („Bitte markieren Sie den Beitrag, der zur Lösung geführt hat, als "Die Antwort". Durch Bewerten eines Beitrags als "Die Antwort" können andere Teilnehmer die Lösung schneller finden. Außerdem können Sie dem Benutzer, der die Antwort eingereicht hat, für seinen Beitrag danken und zur Steigerung der Antwortqualität in der Diskussionsgruppe beitragen.“)

    Grüße,

    Robert

    Dienstag, 13. Dezember 2011 09:50
    Moderator
  • Ich habe (siehe oben) diesen Thread als beantwortet gesetzt und zwar 13 Dez. um 9:32. Das wurde dann auch so im Forum so angezeigt. ...

    Nun ,... is ja auch egal

    Mittwoch, 14. Dezember 2011 11:44
  • Hallo Monarch-Falter,

    Genau. Und ich habe Dich etwas gefragt: „Welche Lösung hast Du jetzt für Dein Problem verwendet? Es wäre schön, wenn Du posten würdest wie es funktioniert hat, denn dann profitieren unter Umständen andere mit dem gleichen Problem davon.“

    …und Dir noch etwas gesagt: „Bitte markieren Sie den Beitrag, der zur Lösung geführt hat, als "Die Antwort“ à Hat Dein Beitrag von 13 Dez. um 9:32. Zur Lösung geführt? Wenn ja, bitte schreibe mal hier welche Lösung hast Du jetzt für Dein Problem verwendet und diese Antwort kann man dann als „Die Antwort“ markieren.

    Danke und Grüße,

    Robert


    Mittwoch, 14. Dezember 2011 11:50
    Moderator
  • Hallo Robert,

    vorab, du bist einer der Besten hier, nach meiner Meinung, aber wo keine Antwort bzw. Lösung ist , kann ich auch nichts in dieser Richtung bewerten oder eine Lösung aufzeigen.

    Am 12.12.2011 habe ich genau das gesagt. Da keine Aussicht auf eine Lösung bestand habe ich den Thread am 13ten beendet.

    Meine Lösung bestand darin auf das animierte Gif zu verzichten :-(

    mfg eem Monarch

    Donnerstag, 15. Dezember 2011 09:04