| |
|
|
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 möglich, die Gif einmal oder mehrmals oder auch dauernd ablaufen zu lassen. V1.1: Zusätzlich ist nun die Größe der Darstellung wählbar Weitere Verbesserungen sind gerne willkommen! |
|
|
| |
|
|
|
Walter | So, hier noch ein Beispiel für V1.1 - ergänzt um den Modus, der die Größe der Bilddarstellung steuert (plus eine kl. GIF-Datei zum Ausprobieren):
' Beispiel für 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") |
|
|
| |
|
|
|
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 Größe gezeigt (und dabei ggf. verzerrt) # Ist er 1, wird das ursprüngliche Seitenverhältnis beibehalten und das Bild in der Größe so angepasst, dass es unter Beibehaltung des Seitenverhältnisses in das angegebene Rechteck passt # Ist er 2, wird das Bild unverzerrt in seiner eigenen Größe 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 Größe 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). |
|
|
| |
|
|
|
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 für 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")
Gruß |
|
|
| XProfan X2Zu 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... |
|
|
| |
|
|
|
p.specht
| Als Retro-Rip der GIF.INC für XProfan11.2a-Free als GIF11.INC-Snippet: Problem: Der Bildlauft stockt In XProfan 11 regelmäßig für 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. Größe, 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 ▲ |
|
|
|