hi hat jemand ne idee wie man ein bild aus dem internet z.b eins von irgendeinem user hier in einem gui darstellen kann ohne _IE... und ohne , dass es auf dem rechner gespeichert wird??
bild aus dem internet in ein gui
-
- [ gelöst ]
-
Nathax -
14. Januar 2010 um 17:43 -
Geschlossen -
Erledigt
-
-
hi hat jemand ne idee wie man ein bild aus dem internet z.b eins von irgendeinem user hier in einem gui darstellen kann ohne _IE... und ohne , dass es auf dem rechner gespeichert wird??
hoff mal du meinst dasSpoiler anzeigen
[autoit]#include<GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$GUI = GuiCreate("", 496, 472,(@DesktopWidth-496)/2, (@DesktopHeight-472)/2)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$B_oIE1 = ObjCreate("Shell.Explorer.2")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$YTwindow = GUICtrlCreateObj($B_oIE1, 20, 140, 460, 220)
$B_oIE1.navigate ('http://www.google.at/intl/de_at/images/logo.gif')GuiSetState()
[/autoit] [autoit][/autoit] [autoit]GUISetOnEvent($GUI_EVENT_CLOSE, "close")
[/autoit] [autoit][/autoit] [autoit]; Functions
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While 1
Sleep(100)
WEndFunc close()
[/autoit]
Exit
EndFunc -
ne sorry hab ja gesagt ohne _IE das von dir hätte ich auch selber hinbekommen aber trotzdem danke dass du es versucht hast
-
wie wärs mit bild in temp verzeichnis runterladen und einbinden.
sehr einfach und sauber. -
kannste mir pls die funktion dafür geben hab schon gesucht aber nix gefunden
-
INetGet?
-
mom muss essen
-
habe das hier mal auf die schnelle gebaut
hoffentlich isses sowas was du suchst
[autoit]
[/autoit]
#include <File.au3>
Func GetInetPicTemp($hBitmap, $sPath)
Local $aRet, $TempName
$FileExtension = StringSplit($sPath, ".")
$FileExtension = $FileExtension[UBound($FileExtension) - 1]
$TempName = _TempFile(@TempDir, "~", $FileExtension)
$aRet = InetGet($sPath, $TempName)
If Not $aRet Then SetError(-1, 0, -1)
$aRet = GUICtrlSetImage($hBitmap, $TempName)
If Not $aRet Then SetError(-1, 0, -1)
Return 1
EndFunc ;==>GetInetPicTemp -
dafür muss i-netexplorer installiert sein habt ihr nicht ne lösung wo nicht jeder erst internetexplorer installieren muss
-
wenns nur mit ie geht, dann mache ich es mit iecreateobj
-
habs gerade probiert es funzt aber unterstützt halt keine png´s
[autoit]
[/autoit]
#include <File.au3>
Func GetInetPicTemp($hBitmap, $sPath)
Local $aRet, $TempName
$FileExtension = StringSplit($sPath, ".")
$FileExtension = $FileExtension[UBound($FileExtension) - 1]
$TempName = _TempFile(@TempDir, "~", $FileExtension)
$aRet = InetGet($sPath, $TempName)
If Not $aRet Then SetError(-1, 0, -1)
$aRet = GUICtrlSetImage($hBitmap, $TempName)
If Not $aRet Then SetError(-1, 0, -1)
Return 1
EndFunc ;==>GetInetPicTempund hier ein bsp
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>$Form1 = GUICreate("Form1", 625, 443, 192, 124)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Pic1 = GUICtrlCreatePic("", -1,-1, 337, 233)GetInetPicTemp($Pic1,"http://www.autoit.de/wcf/images/avatars/avatar-824.gif")
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
WEndFunc GetInetPicTemp($hBitmap, $sPath)
[/autoit]
Local $aRet, $TempName
$FileExtension = StringSplit($sPath, ".")
$FileExtension = $FileExtension[UBound($FileExtension) - 1]
$TempName = _TempFile(@TempDir, "~", $FileExtension)
$aRet = InetGet($sPath, $TempName)
If Not $aRet Then SetError(-1, 0, -1)
$aRet = GUICtrlSetImage($hBitmap, $TempName)
If Not $aRet Then SetError(-1, 0, -1)
Return 1
EndFunc ;==>GetInetPicTemp -
-
Öhm bei Windows ist doch der IE eh schon vorinstalliert
-
Öhm bei Windows ist doch der IE eh schon vorinstalliert
Aber ein von der Gesellschaft wenig akzeptierter Browser.
(Gnädig ausgedrückt) xDMfG
qixx -
ja ist jetzt egal denen ich das programm geben werde die haben eh ie also von daher
[gelöst] -
hallo bin neu hier
habe mir mal die funktion von Sprenger120 angeschaut
muss sagen is ne nette funktion
hab mir dann gedacht ich setz mich mal ran und
schreib sie so um das man damit jetz auch png´s anzeigen kann
hier die funktion:Spoiler anzeigen
[autoit]#include <INet.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
#include <GDIPlus.au3>Func _InetGetPicTemp($hBitmap, $sPath)
[/autoit]
Local $aRet, $TempFileName, $hImage, $sCLSID, $tData, $tParams
$FileName = StringSplit($sPath, "/")
$FileName = $FileName[UBound($FileName) - 1]
$TempFileName = _TempFile(@TempDir, "", $FileName)
$aRet = InetGet($sPath, $TempFileName, 1)
_GDIPlus_Startup ()
$hImage = _GDIPlus_ImageLoadFromFile ($TempFileName)
$sCLSID = _GDIPlus_EncodersGetCLSID ("jpg")
$tData = DllStructCreate("int Data")
DllStructSetData($tData, "Data", $GDIP_EVTTRANSFORMROTATE90)
$tParams = _GDIPlus_ParamInit (1)
_GDIPlus_ParamAdd ($tParams, $GDIP_EPGTRANSFORMATION, 1, $GDIP_EPTLONG, DllStructGetPtr($tData, "Data"))
$TempFileName = StringTrimRight($TempFileName, 3)&"jpg"
_GDIPlus_ImageSaveToFileEx ($hImage, $TempFileName, $sCLSID, DllStructGetPtr($tParams))
_GDIPlus_ShutDown ()
If Not $aRet Then SetError(-1, 0, -1)
$aRet = GUICtrlSetImage($hBitmap, $TempFileName)
If Not $aRet Then SetError(-1, 0, -1)
Return 1
EndFunc
hier mal ein beispiel:Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <INetPlus.au3>$Form1 = GUICreate("Form1", 625, 443, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Pic1 = GUICtrlCreatePic("", -1,-1, 337, 233)_InetGetPicTemp($Pic1,"http://web1.www3.kaliber5.de/uploads/tx_k5ligamanager/100px-VfL_Wolfsburg_Logo_svg.png")
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndviel spass damit
-
Diese Funktion läd das Bild über TCP herunter und ohne es als Datei abzuspeichern wird es in den Speicher geschoben!
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Memory.au3>
#Include <WindowsConstants.au3>
#include <String.au3>
#NoTrayIcon
_GDIPlus_Startup()$hwnd = GUICreate("Display image from memory", 600,100,-1,-1,-1, bitor($WS_EX_LAYERED,$WS_EX_TOOLWINDOW))
[/autoit] [autoit][/autoit] [autoit]
GUISetState()
WinSetOnTop($hwnd,"",1)
;Load Image
$hImage = _GDIPlus_ImageLoadFromInet( "http://www.autoit.de", "/wcf/images/future/autoit_logo_gtaspider.png")
;Show Image
SetBitmap($hwnd, $hImage, 255)
;Exit:
for $i = 255 to 0 step -1
SetBitmap($hwnd, $hImage, $i)
Sleep(20)
Next
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Exit;-----------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Author: Faweyr
; Thanks: Upload Function: @night@ ( http://www.autoitbot.de )
; Binary to Image: UEZ ( http://www.autoit.de )
; Function: _GDIPlus_LoadWebImage( $sHost, $sSeite)
; Parameter: $sHost = Host der Seite (zb. http://www.autoit.de)
; $sSeite = Der Link zum Bild ohne den Hostnamen (zb. /wcf/images/future/autoit_logo_gtaspider.png )
; Note: Läd ein Bild aus dem Inet und gibt das Handle (GDI+) zurück ohne es als Datei abzuspeichern
; Funktioniert auch bei Passwort geschützte Bereiche, da es über TCP funktioniert
; Return: Fehler: 0
; Erfolg: Handle of Image
; Error: 0 = Succes
; 1 = Can´t connected
; Example: _GDIPlus_ImageLoadFromInet( "http://www.autoit.de", "/wcf/images/future/autoit_logo_gtaspider.png")
;-----------------------------------------------------------------------------------------------------------------
Func _GDIPlus_ImageLoadFromInet( $sHost, $sSeite)
If StringInStr($sHost, "http://") Then $sHost = StringReplace($sHost, "http://", "")
If StringRegExp($sHost, "\.../") Then $sHost = Stringreplace($sHost, "/", "")
TCPStartup()
$sIp = TCPNameToIP($sHost)
$sData = "GET "&$sSeite&" HTTP/1.1" & @crlf & _
"Host: " & $sHost & @crlf & _
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)" & @crlf & _
"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @crlf & _
"Accept-Language:de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @crlf & _
"Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @crlf & _
"Connection: close" & @crlf & @CRLF$sSocket = TCPConnect($sIp, 80)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
TCPSend($sSocket, $sData)
If @error Then return Seterror(1)
Local $sRecv_header = "", $sRecv_binary = "0x"
Do
$sRecv_header = TCPRecv($sSocket, 1)
until $sRecv_header <> ""
Do
$sRecv_header &= TCPRecv($sSocket, 1)
until StringInStr($sRecv_header, @crlf & @crlf)
$aArray_help = _stringbetween($sRecv_header, 'Content-Length: ', @crlf)
If NOT isarray($aArray_help) Then
TCPCloseSocket($socket)
TCPShutdown()
return Seterror(1)
EndIf
$iBytes = $aArray_help[0]
Do
$sRecv_binary &= StringTrimLeft(TCPRecv($sSocket, 1024, 1),2)
Until BinaryLen( Binary($sRecv_binary) ) >= $iBytes
TCPCloseSocket($sSocket)
TCPShutdown()
$memBitmap = Binary($sRecv_binary)
$len = BinaryLen($memBitmap)
$hData = _MemGlobalAlloc($len, 0x0002)
$pData = _MemGlobalLock($hData)
$tMem = DllStructCreate("byte[" & $len & "]", $pData)
DllStructSetData($tMem, 1, $memBitmap)
_MemGlobalUnlock($hData)
$aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "hwnd", $pData, "int", True, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
$aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $aResult[3], "int*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return $aResult[2]
EndFuncFunc SetBitmap($hGUI, $hImage, $iOpacity)
[/autoit] [autoit][/autoit] [autoit]
Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend$hScrDC = _WinAPI_GetDC(0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize )
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth ($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha" , $iOpacity )
DllStructSetData($tBlend, "Format", 1)
_WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC (0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC ($hMemDC)
EndFuncViel Spaß