Jump to content
Sign in to follow this  
johnmcloud

[SOLVED] Load image from URL

Recommended Posts

Hi guys, i have a little problem with a $var of this script, i don't know how to make it:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <String.au3>
#include <File.au3>

Global $image

$GUI = GUICreate("Test GUI", 466, 360, -1, -1)
$InfoButton = GUICtrlCreateButton("Info", 14, 312, 123, 25)
$WebPic = GUICtrlCreatePic(_GetURLImage('"' & $image & '"'), 16, 216, 120, 90)
If @error = 1 Then
$GroupPic = GUICtrlCreateGroup("", 15, 210, 120, 100)
EndIf
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
  Case $InfoButton
   Read_Info()
EndSwitch
WEnd

Func Read_Info()
Dim $logfile = @WorkingDir & "\test.txt"
If FileGetSize($logfile) <> 0 Then
  Global $image = FileReadLine($logfile, 2)
  MsgBox(0,0, FileReadLine($logfile, 2))
EndIf
EndFunc   ;==>Read_Info

Func _GetURLImage($sURL, $sDirectory = @TempDir)
Local $hDownload, $sFile
$sFile = StringRegExpReplace($sURL, "^.*/", "")
If @error Then
  Return SetError(1, 0, $sFile)
EndIf
If StringRight($sDirectory, 1) <> "\" Then
  $sDirectory = $sDirectory & "\"
EndIf
$sDirectory = $sDirectory & $sFile
If FileExists($sDirectory) Then
  Return $sDirectory
EndIf
$hDownload = InetGet($sURL, $sDirectory, 17, 1)
While InetGetInfo($hDownload, 2) = 0
  If InetGetInfo($hDownload, 4) <> 0 Then
   InetClose($hDownload)
   Return SetError(1, 0, $sDirectory)
  EndIf
  Sleep(105)
WEnd
InetClose($hDownload)
Return $sDirectory
EndFunc   ;==>_GetURLImage

The Test.txt

blabla
dizziness-and-balance.com/images/eye-chart.jpg
blabla

I have removed the http://www. on the forum, but on the file the link is full

On MsgBox or ConsoleWrite i see the full link ( the link posted change everytime, so i can't make a direct link to the image on PC ) but the image is not loaded on GUI.

What is the problem?

Thanks for support :)

Edited by johnmcloud

Share this post


Link to post
Share on other sites

I think it's because you are trying to load an image from the web.

Try download it first using the INet functions and save it somewhere local.


Minesweeper

A minesweeper game created in autoit, source available.

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.

Share this post


Link to post
Share on other sites

Thanks AlmarM, but i don't think is the problem, because _GetUrlImage() download the image on PC and give me the directory position, in @Tempdir &amp; "nameofthefile.jpeg"

Edited by johnmcloud

Share this post


Link to post
Share on other sites

Thanks AlmarM, but i don't think is the problem, because _GetUrlImage() download the image on PC and give me the directory position, in @Tempdir &amp; "\nameofthefile.jpeg"

Ah, I oversaw that.

Whats the reason you are adding a " twice in the _GetURLImage?

$WebPic = GUICtrlCreatePic(_GetURLImage('"' & $image & '"'), 16, 216, 120, 90)

Minesweeper

A minesweeper game created in autoit, source available.

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.

Share this post


Link to post
Share on other sites

Because i can't make it without :)

GetImageUrl("http://qwerty") - work

GetImageUrl(http://qwerty) - not work

My problem is set the $var, with link work, with the variable not, but the consolewrite give me the right url. Try it.

Share this post


Link to post
Share on other sites

Because i can't make it without Posted Image

GetImageUrl("http://qwerty") - work

GetImageUrl(http://qwerty) - not work

My problem is set the $var, with link work, with the variable not, but the consolewrite give me the right url. Try it.

First of all, remove those 2 ". It's no use since you are using a variable.

Second, the link inside the text.txt is correct, but the link provided by the _GetURLImage returns only @TempDir.

Therefore the image will not show because the _GetURLImage doesn't return the filename + extension.

MsgBox(0, "", _GetURLImage($image))

Minesweeper

A minesweeper game created in autoit, source available.

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.

Share this post


Link to post
Share on other sites

Guys, maybe i'm not so clear, my problem is not with the script, the script work file, take a look:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <String.au3>
#include <File.au3>

$GUI = GUICreate("Test GUI", 466, 360, -1, -1)
$InfoButton = GUICtrlCreateButton("Info", 14, 312, 123, 25)
$WebPic = GUICtrlCreatePic(_GetURLImage("http://www.autoitscript.com/forum/uploads/profile/photo-thumb-29844.jpg"), 16, 216, 120, 90)
If @error = 1 Then
$GroupPic = GUICtrlCreateGroup("", 15, 210, 120, 100)
EndIf
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
EndSwitch
WEnd

Func _GetURLImage($sURL, $sDirectory = @TempDir)
Local $hDownload, $sFile
$sFile = StringRegExpReplace($sURL, "^.*/", "")
If @error Then
  Return SetError(1, 0, $sFile)
EndIf
If StringRight($sDirectory, 1) <> "" Then
  $sDirectory = $sDirectory & ""
EndIf
$sDirectory = $sDirectory & $sFile
If FileExists($sDirectory) Then
  Return $sDirectory
EndIf
$hDownload = InetGet($sURL, $sDirectory, 17, 1)
While InetGetInfo($hDownload, 2) = 0
  If InetGetInfo($hDownload, 4) <> 0 Then
   InetClose($hDownload)
   Return SetError(1, 0, $sDirectory)
  EndIf
  Sleep(105)
WEnd
InetClose($hDownload)
Return $sDirectory
EndFunc   ;==>_GetURLImage

Oh, @AlmarM, The func _GetURLImage give me the full directory + extension:

ConsoleWrite(_GetURLImage("http://www.autoitscript.com/forum/uploads/profile/photo-thumb-29844.jpg")

Result is:

C:DOCUME~1WINDOW~1IMPOST~1Tempphoto-thumb-29844.jpg

For the "" you have right, it's useless but the result is the same. I'll remove them

Resume, i want to do this:

1) Open the script, no image ( i have did it with if @error = 1 )

2) Click on info button --> _GetURLImage --> load image into GUI

So my problem is i don't know how to do the 2), i need help for this. Thanks to all

Edited by johnmcloud

Share this post


Link to post
Share on other sites

Maybe i have resolved by myself with this:

$var = _GetURLImage("http://www.autoitscript.com/forum/uploads/profile/photo-thumb-29844.jpg")
GUICtrlSetImage($WebPic, $var)

I'll test it and post the result later

EDIT: Yes, work

Thanks anyway to UEZ and AlmarM :)

Edited by johnmcloud

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By coronatuss
      Hello everyone,
      Im developing an script to check the size of all .jpg stored in windows folder.
      The problem is that it doesn´t work properly with rotated images. 
      With _GDIPlus_ImageGetWidth() and _GDIPlus_ImageGetHeight()  I get the Width and Height of images as if they had not been rotated, and I need to know how they are rotated (orientation and grades).
      Any help is welcome! If more info is needed, please tell. 😁
    • By nacerbaaziz
      hello autoit team
      please i've a question for you.
      am creating a audio player
      and in this audio player i want to show the current trac info
      such as the total time and the position ... etc
      i know i can show it as label
      but the screen reader for the blind read the text every change
      because it have a screen scan
      what i want is to show this informations but such image or icon
      i mean i need to create
      GUICtrlCreatepic or GUICtrlCreateicon ....
      or some thing as that
      and show this informations as image on it
      i think that i can do that with the 
      _GDIPlus functions
      but i couldn't find the currect way to do it
      i tried the _GDIPlus_GraphicsDrawString
      but i couldn't know how it work
      what i need is a small example that create a GUI
      and add a multy line text to it as graphic or image.
      so i need a simple way because it will changed every sec
      i hope any one can help me to do that
      global $GUI = GUICreate("text", 400, 400) global $label = GUICtrlCreateLabel(GetText(), 10, 10, 380, 380) GUISetState() do sleep(100) until GUIGetMSG() = -3 exit func GetText() return StringFormat("file name is test.mp3 \r\n total time is 00:30:00 \r\n position is 00:05:50") endFunc  
    • By therks
      So I don't have any code cooked up yet as this is still in the theoretical stage. Just looking for some advice.
      My current idea is to resize the image to 1x1 pixel, probably using _GDIPlus_ImageResize, and read the color of the resulting pixel to obtain an admittedly very general sense of brightness. Does anyone think this could work?
      We have a CCTV system running at home using some home made cameras (raspberry pi) and we're trying to automate toggling settings for day/night time. We started with an AutoIt script that checked sunrise and sundown times for our location (calculations pulled from here) and toggled the settings based on that. Unfortunately our weather varies wildly, so it can get light/dark far outside normal sunrise/sundown times. Now we're hoping to periodically grab a still from the camera and toggle the light mode based on that.
    • By HariKara
      I have a script that seems to launch perfectly fine with IECreate, however, I want to launch the Browser and a specific URL with the RunAs command. I fairly new to AutoIT and wanted to know if someone can point me in the right direction.
      Local $surl = "http://somewebsite.com/DODA/admin/job.aspx"
      Local $oIE = _IECreate($sURL)
      The above launches the website correctly with the correct URL, however, I have tried the below and this fails to load and browser?
      #include <AutoItConstants.au3>
      ;========================
      $oSleep = "200"
      Local $surl = "http://somewebsite.com/DODA/admin/job.aspx"
      Local $oIE = RunAs($args("username"), $args("domain"), $args("logonpassword"), "", "C:\Program Files (x86)\Internet Explorer\iexplore.exe http://somewebsite.com/DODA/admin/job.aspx")
      _IELoadWait($oIE)
       
      I get the following error back?
      --> IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_InvalidDataType
      --> IE.au3 T3.0-2 Error from function _IEGetObjById, $_IESTATUS_InvalidDataType
      --> IE.au3 T3.0-2 Error from function _IEGetObjById, $_IESTATUS_InvalidDataType
×
×
  • Create New...