Italia
Fonte/ Codesnippets

Animierte Gifs

 

Walter
Habe ausgehend von [...] 
versucht, animierte Gifs ablaufen zu lassen.
Nach einigen Anpassungen hier nun eine gif.inc, die auf der ursprünglichen pic.inc von Martin Pohl basiert.
Damit ist es nun possibile, die Gif einmal oder mehrmals oder auch dauernd ablaufen zu lassen.
V1.1: Zusätzlich ist nun die Dimensione der Darstellung wählbar
Weitere Verbesserungen sind gerne Benvenuto!

8 kB
Version:1.1
Hochgeladen:02.12.2018
Downloadcounter160
Download
 
02.12.2018  
 




Walter
So, hier noch ein Beispiel per V1.1 - ergänzt um den Modus, der die Dimensione der Bilddarstellung steuert (plus eine kl. GIF-File zum Ausprobieren):

' Beispiel per gif.inc V1.1
' Walter Kowarik
' 6.1.2019
'
declare pfad$,Bild$,WieOft%,Modus%

pfad$=GetDir$("")

$I gif.inc

' Bild laden
Bild$=loadfile$("GIF auswählen",pfad$+"\*.gif")
WieOft%=val(input$("einmal=1, dauernd=0","Wie oft?","0"))

cls
print "Modus: Das Bild wird\n0=in Rahmengröße (ev. verzerrt) dargestellt,\
\n1=unverzerrt in den Rahmen eingepasst,\n2=in der ursprünglicher Bildgröße angezeigt,\
\n3=ein kleines Bild wird in Bildgröße angezeigt, \n ein großes unverzerrt in den Rahmen eingepasst"
Modus%=val(input$("","Modus","3"))

cls
' eventuell bereits angewählte Bildnummer wird vorsichtshalber geschlossen
ClosePic(1)

' Animation wird gestartet
LoadAnim(Bild$,10,10,300,270,%Hwnd,1,WieOft%,Modus%)

waitinput

ClosePic(1)
' oder MCISend$("CLOSE ALL")

29 kB
Version:1.1
Hochgeladen:08.12.2018
Downloadcounter211
Download
 
08.12.2018  
 




Walter
Hab eine V1.1 erstellt und darin noch den Modus ergänzt (auch bereits im Download und im Beispiel) wodurch bestimmt wird, wie das Gif-Bild angezeigt wird:

# Ist dieser Parameter 0, so wird das Bild in der von dem Rahmen-Rechteck angegeben Dimensione gezeigt (und dabei ggf. verzerrt)
# Ist er 1, wird das ursprüngliche Seitenverhältnis beibehalten und das Bild in der Dimensione so angepasst, dass es unter Beibehaltung des Seitenverhältnisses in das angegebene Rechteck passt
# Ist er 2, wird das Bild unverzerrt in seiner eigenen Dimensione dargestellt (und somit ggf abgeschnitten)
# Ist er 3, so wird das Bild - sofern es kleiner als der Rahmen ist (zB ein Smiley) - in seiner eigenen Dimensione dargestellt; ist es größer als der Rahmen, wird es unverzerrt so weit verkleinert, dass es in den Rahmen passt (diesen Modus verwende ich selbst meistens, da ich Smileys anzeige, aber auch andere Bilder, die dann in den Rahmen eingepasst werden).
 
07.01.2019  
 




Manfred
Barei
Hallo Walter,

beim nächsten mal bitte so bei Code einfügen.
Rechts neben Smilies ist ein nach unten gerichteter Pfeil da bitte draufklicken und auf Quelltext gehen.
' Beispiel per gif.inc V1.1
' Walter Kowarik
' 6.1.2019
'
declare pfad$,Bild$,WieOft%,Modus%
pfad$=GetDir$("")
 $I gif.inc
' Bild laden
Bild$=loadfile$("GIF auswählen",pfad$+"\*.gif")
WieOft%=val(input$("einmal=1, dauernd=0","Wie oft?","0"))
cls
print "Modus: Das Bild wird\n0=in Rahmengröße (ev. verzerrt) dargestellt,\
\n1=unverzerrt in den Rahmen eingepasst,\n2=in der ursprünglicher Bildgröße angezeigt,\
\n3=ein kleines Bild wird in Bildgröße angezeigt, \n ein großes unverzerrt in den Rahmen eingepasst"
Modus%=val(input$("","Modus","3"))
cls
' eventuell bereits angewählte Bildnummer wird vorsichtshalber geschlossen
ClosePic(1)
' Animation wird gestartet
LoadAnim(Bild$,10,10,300,270,%Hwnd,1,WieOft%,Modus%)
waitinput
ClosePic(1)
' oder MCISend$("CLOSE ALL")

Saluto
 
XProfan X2
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
09.01.2019  
 




Walter
okay, wusste ich nicht...
 
11.01.2019  
 




p.specht

Als Retro-Rip der GIF.INC per XProfan11.2a-Free als GIF11.INC-Snippet:
Problem: Der Bildlauft stockt In XProfan 11 regelmäßig per 1/2 Sekunde. Hat jemand eine Idee, wie man das flüssiger machen kann?
' ---- GIF11.INC snippet ---------
' based on GIF.INC by Walter Kowarik (c) 2019

Proc LoadAnim

    Parameters MP_Pfad$,MP_X%,MP_Y%,MP_B%,MP_H%,MP_Win%,\
    MP_Num%,MP_Rep%,Modus%
    Declare MP_MCI$, i%,Pic&,Fak!

    if Modus%=0' verzerrt einipassen

    elseif Modus%=1' proportional einpassen

        Pic&=Create("hSizedPic", -1,MP_Pfad$, MP_B%, MP_H%, 1)
        ' skalieren
        Fak!=MP_H%/%bmpy
        MP_H%=MP_H%/Fak!
        DeleteObject Pic&

    elseif Modus%=2' Originalgröße, ev. clipping oder überdecken

        Pic&=Create("hPic", -1,MP_Pfad$)
        MP_B%=%bmpx
        MP_H%=%bmpy
        DeleteObject Pic&

    elseif Modus%=3' wenn <= Rahmen orig. Dimensione, sonst prop. einpassen

        Pic&=Create("hPic", -1,MP_Pfad$)

        if (MP_H%>=%bmpy) and (MP_B%>=%bmpx)

            MP_B%=%bmpx
            MP_H%=%bmpy

        else

            Fak!=MP_H%/%bmpy
            MP_H%=MP_H%*Fak!
            DeleteObject Pic&

        endif

        DeleteObject Pic&

    endif

    MP_MCI$="OPEN",@Chr$(34);MP_Pfad$;@Chr$(34),"TYPE MPEGVIDEO ALIAS MP_PIC";@Str$(MP_Num%)
    @MCISend$(MP_MCI$)
    MP_MCI$="WINDOW MP_PIC";@Str$(MP_Num%);" HANDLE",@Str$(MP_Win%)
    @MCISend$(MP_MCI$)
    MP_MCI$="WINDOW MP_PIC";@Str$(MP_Num%);" STRETCH"
    @MCISend$(MP_MCI$)
    MP_MCI$="PUT MP_PIC";@Str$(MP_Num%);" DESTINATION AT",@Str$(MP_X%),@Str$(MP_Y%),@Str$(MP_B%),@Str$(MP_H%)
    @MCISend$(MP_MCI$)

    if MP_Rep%=0' Dauernd wiederholen

        MP_MCI$="PLAY MP_PIC";@Str$(MP_Num%);" REPEAT"
        @MCISend$(MP_MCI$)

    else

        MP_MCI$="PLAY MP_PIC";@Str$(MP_Num%); " FROM 0:0:0"

        Whileloop MP_Rep%:i%=&Loop'  Durchlauf sooft hier gewünscht

            @MCISend$(MP_MCI$)
            sleep 2000

        endWhile

    endif

EndProc

Proc ClosePic :parameters MP_Num%

    Declare MP_MCI$
    MP_MCI$="CLOSE MP_PIC";@Str$(MP_Num%)
    @MCISend$(MP_MCI$)

EndProc

' --------------- End of gif11.inc
MAIN:
''''''''  $I gif11.inc  ' Falls gif11.inc als INCLUDE, bitte uncommenten
declare pfad$,Bild$,WieOft%,Modus%
pfad$=GetDir$("@")
Bild$=loadfile$("GIF auswählen",pfad$+"\*.gif")
WieOft%=val(input$("einmal=1, dauernd=0","Wie oft?","0"))
cls
print "Modus: Das Bild wird\n0=in Rahmengröße (ev. verzerrt) dargestellt,"
print "\n 1 = unverzerrt in den Rahmen eingepasst,"
print "\n 2 = in der ursprünglichen Bildgröße angezeigt,"
print "\n 3 = ein kleines Bild wird in Bildgröße angezeigt, ein"
print   "       großes unverzerrt in den Rahmen eingepasst"
Modus%=val(input$("","Modus","3"))
Cls
ClosePic(1)' angewählte Bildnummer vorsichtshalber schließen
LoadAnim(Bild$,10,10,300,270,%Hwnd,1,WieOft%,Modus%)
waitinput
ClosePic(1)
' oder MCISend$("CLOSE ALL")
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
09.07.2020  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

5.837 Views

Untitledvor 0 min.
H.Brill30.10.2023
Axel Berse15.03.2023
Walter09.11.2022
RudiB.08.08.2021
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Walter (4x)
p.specht (1x)
Manfred Barei (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie