Bild im Webgadget vergrößern
Bild im Webgadget vergrößern
Hallo,
wie kann man in einem Webgadget angezeigtes Bild vergrößern?
Diese Funktion findet man z.B. im Browser K-Meleon.
Auf eine Grafik klicken, rechte Maustaste->Vergrößern.
wie kann man in einem Webgadget angezeigtes Bild vergrößern?
Diese Funktion findet man z.B. im Browser K-Meleon.
Auf eine Grafik klicken, rechte Maustaste->Vergrößern.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Hier ist meine Lösung:
Code: Alles auswählen
StandardFile$ = ""
Pattern$ = "Bilder (*.jpg)|*.jpg|Alle Dateien (*.*)|*.*"
Pattern = 0
File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)
If File$
path$=GetPathPart(File$)
NewList bilder.s()
Directory$ = Left(path$,Len(path$)-1)+"/"
If ExamineDirectory(0, Directory$, "*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
If Right( DirectoryEntryName(0),3)="JPG"
AddElement(bilder())
bilder() = DirectoryEntryName(0)
EndIf
EndIf
Wend
FinishDirectory(0)
EndIf
SelectElement(bilder(), 0)
anzBild1$= bilder()
SelectElement(bilder(), 6)
anzBild2$= bilder()
Bildgroesse=160
bhtml$ = "<html xml:lang='de-DE' lang='de-DE' xmlns='http://www.w3.org/1999/xhtml'>"
bhtml$ + "<head>"
bhtml$ + "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"
bhtml$ + "<title>Beispiel</title>"
bhtml$ + "<style type='text/css'>"
bhtml$ + "body {"
bhtml$ + " background: #555;"
bhtml$ + "}"
bhtml$ + "a.bild {"
bhtml$ + "display: block;"
bhtml$ + "margin: 10% auto;"
bhtml$ + "width: " + Str(Bildgroesse) + "px;"
bhtml$ + "padding: 2px;"
bhtml$ + "border: 1px solid #ccc;"
bhtml$ + "}"
bhtml$ + "a.bild img {"
bhtml$ + " width: 100%;"
bhtml$ + " border: none;"
bhtml$ + "}"
bhtml$ + "</style>"
bhtml$ + "</head>"
bhtml$ + "<body>"
bhtml$ + "<a href='file://" + Directory$+ bilder() + "' class='bild'>"
bhtml$ + "<img src='file://" + Directory$ + bilder() +"' alt='Bild anzeigen' />"
bhtml$ + "</a>"
bhtml$ + "</body>"
bhtml$ + "</html> "
OpenWindow(0,10,10,600,600,"Bilder anzeigen",#PB_Window_WindowCentered|#PB_Window_SystemMenu)
WebGadget(1,100,50,400,400,"")
ButtonGadget(2,10,10,100,30,"Vergrößern")
ButtonGadget(3,130,10,100,30,"Verkleinern")
ButtonGadget(4,250,10,100,30,"vorheriges Bild")
ButtonGadget(5,370,10,100,30,"nächstes Bild")
ButtonGadget(6,490,10,100,30,"Verlassen")
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
If EventGadget() = 2
alteBildgroesse=Bildgroesse
Bildgroesse=Bildgroesse+50
ReplaceString(bhtml$,Str(alteBildgroesse)+"px",Str(Bildgroesse)+"px",#PB_String_InPlace)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 3
alteBildgroesse=Bildgroesse
Bildgroesse=Bildgroesse-50
ReplaceString(bhtml$,Str(alteBildgroesse)+"px",Str(Bildgroesse)+"px",#PB_String_InPlace)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 4
anzBild1$= bilder()
PreviousElement(bilder())
anzBild2$= bilder()
ReplaceString(bhtml$,anzBild1$,anzBild2$,#PB_String_InPlace)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 5
anzBild1$= bilder()
NextElement(bilder())
anzBild2$= bilder()
ReplaceString(bhtml$,anzBild1$,anzBild2$,#PB_String_InPlace)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 6
Event = #PB_Event_CloseWindow
End
EndIf
EndSelect
Until Event = #PB_Event_CloseWindow
Else
MessageRequester("Information", "Sie müssen eine Datei auswählen!", 0)
EndIf
End
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
@Andesdaf,
habe den Code direkt hier aus dem Beitrag kopiert, um zu sehen, ob beim hineinsetzen des Beitrages irgendetwas schief gelaufen ist.
Kann ich aber nichts feststellen.
Also bei mir unter dem neusten Update PB4.3 vom letzten Sonntag läuft es bei mir.
Kein Absturz.
Gruß Dysti
habe den Code direkt hier aus dem Beitrag kopiert, um zu sehen, ob beim hineinsetzen des Beitrages irgendetwas schief gelaufen ist.
Kann ich aber nichts feststellen.
Also bei mir unter dem neusten Update PB4.3 vom letzten Sonntag läuft es bei mir.
Kein Absturz.
Gruß Dysti
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
suboptimal:dysti hat geschrieben:Kein Absturz.
besser:dysti hat geschrieben:Code: Alles auswählen
If Right(DirectoryEntryName(0),3)="JPG"
Code: Alles auswählen
If UCase(Right(DirectoryEntryName(0),3))="JPG"
noch besser:
Code: Alles auswählen
If UCase(GetExtensionPart(DirectoryEntryName(0))) = "JPG"
--
suboptimal:
besser:dysti hat geschrieben:Code: Alles auswählen
SelectElement(bilder(), 0) anzBild1$= bilder() [...]
Code: Alles auswählen
If ListSize(bilder()) = 0
MessageRequester("", "Keine darstellbaren Bilder gefunden. Programm wird beendet")
End
EndIf
SelectElement(bilder(), 0)
anzBild1$= bilder()
[...]
Parameters #PB_String_InPlace an.
to be continued...
Grüße ... Kiffi
a²+b²=mc²
@kiffi, hier ist der Code. Habe in bezüglich HTML einfacher gestaltet.
Nun ja, man muß da zwischendurch auch mal HTML lernen.
Anhang: wenn man mit der Maus in der Mitte des Bildes geht, verändert sich der Mauszeiger zur Hand.
Wie kann man jetzt mit der Maus mit gedrückter linker Taste das Bild im Webgadget scrollen, ohne die Billdlaufleisten des Webgadget zu benutzen?
Nun ja, man muß da zwischendurch auch mal HTML lernen.
Code: Alles auswählen
StandardFile$ = ""
Pattern$ = "Bilder (*.jpg)|*.jpg|Alle Dateien (*.*)|*.*"
Pattern = 0
File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)
If File$
path$=GetPathPart(File$)
NewList bilder.s()
Directory$ = Left(path$,Len(path$)-1)+"/"
If ExamineDirectory(0, Directory$, "*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
If UCase(GetExtensionPart(DirectoryEntryName(0))) = "JPG"
AddElement(bilder())
bilder() = DirectoryEntryName(0)
EndIf
EndIf
Wend
FinishDirectory(0)
EndIf
If ListSize(bilder()) = 0
MessageRequester("", "Keine darstellbaren Bilder gefunden. Programm wird beendet")
End
EndIf
SelectElement(bilder(), 0)
anzBild1$= bilder()
SelectElement(bilder(), 6)
anzBild2$= bilder()
bh=200
Gosub htmlseite
OpenWindow(0,10,10,600,600,"Bilder anzeigen",#PB_Window_WindowCentered|#PB_Window_SystemMenu)
WebGadget(1,100,50,400,400,"")
ButtonGadget(2,10,10,100,30,"Vergrößern")
ButtonGadget(3,130,10,100,30,"Verkleinern")
ButtonGadget(4,250,10,100,30,"vorheriges Bild")
ButtonGadget(5,370,10,100,30,"nächstes Bild")
ButtonGadget(6,490,10,100,30,"Verlassen")
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
If EventGadget() = 2
bh=bh+50
Gosub htmlseite
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 3
bh=bh-50
Gosub htmlseite
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 4
anzBild1$= bilder()
PreviousElement(bilder())
anzBild2$= bilder()
ReplaceString(bhtml$,anzBild1$,anzBild2$,#PB_String_InPlace)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 5
anzBild1$= bilder()
NextElement(bilder())
anzBild2$= bilder()
ReplaceString(bhtml$,anzBild1$,anzBild2$,#PB_String_InPlace)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
EndIf
If EventGadget() = 6
Event = #PB_Event_CloseWindow
End
EndIf
EndSelect
Until Event = #PB_Event_CloseWindow
Else
MessageRequester("Information", "Sie müssen eine Datei auswählen!", 0)
EndIf
End
htmlseite:
bhtml$ = "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>"
bhtml$ + "<html><head><meta content='text/html; charset=ISO-8859-1' http-equiv='content-type'>"
bhtml$ + "<title>Bilder anzeigen</title></head><body>"
bhtml$ + "<img style='height: "+ Str(bh)+"px' alt='Bilder' title='Bild1' src='file://" + Directory$ + bilder() +"'>"
bhtml$ + "</body></html>"
Return
Wie kann man jetzt mit der Maus mit gedrückter linker Taste das Bild im Webgadget scrollen, ohne die Billdlaufleisten des Webgadget zu benutzen?
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
ohne das jetzt optimieren zu wollen:dysti hat geschrieben:@kiffi, hier ist der Code.
1.) nimm das #PB_String_InPlace aus ReplaceString. Habe ich zwar
schon oben geschrieben, aber hast Du wahrscheinlich übersehen.
Ansonsten klappt ReplaceString nur mit Bildnamen, die alle gleich lang
sind.
2.) Ohne ein Gosub htmlseite klappt das Blättern bei mir nicht.
Code: Alles auswählen
If EventGadget() = 4
anzBild1$= bilder()
PreviousElement(bilder())
anzBild2$= bilder()
Gosub htmlseite
ReplaceString(bhtml$,anzBild1$,anzBild2$)
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
[...]
Wie angedeutet: Kann man noch optimieren. Aber so klappt es zumindest
auch.
Grüße ... Kiffi
a²+b²=mc²
@hallo Kiffi,
bitte die Zeilen mit dem Befehl "Replacestring" durch "Gosub htmlseite" ersetzen.
Hatte ich vergessen umzuändern.
Das mit dem Umblättern auch bei verschiedenlanger Namen klappt aber bei mir.
bitte die Zeilen mit dem Befehl "Replacestring" durch "Gosub htmlseite" ersetzen.
Hatte ich vergessen umzuändern.
Code: Alles auswählen
anzBild2$= bilder()
Gosub htmlseite
SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9