iamtheky 927 Posted November 7, 2010 (edited) This grabs pixel locations from a preset file, then draws them in different colors. It seems the load function is spectacularly slow, any suggestions for speeding that up would be welcomed. Also if you reverse the X and Y coordinates in the setpixel it will draw it vertically and mirrored, yay math. Loading.txt is attached = the preset file of the pixels for the string LOADING... expandcollapse popup#include <Array.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $fromFile1 = _load("c:\test\LOADING.txt") _DrawPicfromArray ($fromfile1) Func _DrawPicfromArray($Srcarray) $MAX = ubound($SrcArray) - 1 $Half = $MAX / 2 While 1 Local $dc = DllCall("user32.dll", "int", "GetDC", "hwnd", 0) Local $D, $E For $i = 0 To $MAX $D = $SrcArray[$i][0] $E = $SrcArray[$i][1] _PixelSetColor($E , $D, 0xFFFFFF) next For $i = 0 To $Half random(0, $Max) $D = $SrcArray[$i][0] $E = $SrcArray[$i][1] _PixelSetColor($E, $D,0xFF0000) _HPSleep(100,0) Next For $i = $Half To $MAX $D = $SrcArray[$i][0] $E = $SrcArray[$i][1] _PixelSetColor($E, $D, 0x00FF00) _HPSleep(100,0) Next For $j = 0 to $Max * 100 $i = random (0, $MAX) $D = $SrcArray[$i][0] $E = $SrcArray[$i][1] _PixelSetColor($E, $D, random(0x000000 , 0xFFFFFF)) Next DllCall("user32.dll", "int", "ReleaseDC", "hwnd", 0, "hwnd", $dc[0]) WEnd EndFunc ; Modified from http://www.autoitscript.com/forum/index.php?showtopic=7315&view=findpost&p=178779 Func _PixelSetColor($XCoord, $YCoord, $Color) Local $dc = DllCall("user32.dll", "int", "GetDC", "hwnd", 0) If Not IsArray($dc) Then Return -1 DllCall("gdi32.dll", "long", "SetPixel", "long", $dc[0], "long", $XCoord, "long", $YCoord, "long", _ "0x" & StringRegExpReplace(hex($Color,6), "(..)(..)(..)", "\3\2\1")) ; Change to 0xBBGGRR hex colour format. DllCall("user32.dll", "int", "ReleaseDC", "hwnd", 0, "hwnd", $dc[0]) EndFunc ;==>_PixelSetColor Func _HPSleep($iSleep, $fMs = 1) ; default is milliseconds, otherwise microseconds (1 ms = 1000 µs) If $fMs Then $iSleep *= 1000 ; convert to ms DllCall("ntdll.dll", "dword", "NtDelayExecution", "int", 0, "int64*", -10 * $iSleep) EndFunc Func _load($file) $J = 11008 $H = 11008 / 2 Dim $BArray [$H][2] $file = fileopen ($file , 0) for $K = 0 to $H - 1 $line = filereadline ($file) $BArray[$K][0] = $line $line = filereadline ($file) $BArray[$K][1] = $line Next FileClose ($file) Return $BArray EndFunc LOADING.txt Edited November 7, 2010 by iamtheky ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Share this post Link to post Share on other sites
MvGulik 86 Posted November 7, 2010 Relevant remarks from FileReadLine help:If no line number to read is given, the "next" line will be read. ("Next" for a newly opened file is initially the first line.)...From a performance standpoint it is a bad idea to read line by line specifying "line" parameter whose value is incrementing by one. This forces AutoIt to reread the file from the beginning until it reach the specified line.Ergo: ditch those line parameters on your FileReadLine code to get up to normal speed. "Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions.""The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)"Believing what you know ain't so" ...Knock Knock ... Share this post Link to post Share on other sites
iamtheky 927 Posted November 7, 2010 Thank you sir, I would have never suspected that in a loop it would just remember where it left off. And the helpfile wins again. edited first post reflects the much speedier version. ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Share this post Link to post Share on other sites