Sign in to follow this  
Followers 0

Stereograms again ("MagicEye" 3-d)

12 posts in this topic

Posted (edited)

There was a thread floating around here a while ago in which some scripts were presented which would make various types of stereograms, which I think is always fun. Though I personally tried a few styles to try and get the "random" pattern to be meaningful itself and still let the 3-d show through, I never succeeded (I actually think the formulas I was using may have been flawed- maybe I'll go back and see if I could improve them later).

To my surprise two days ago, I discovered that blocks of ASCII text (usually random bits of text) could actually be made into crude stereograms (crude because each "pixel" [in this case, character] is so much larger that the resolution is by necessity much smaller). So I thought, why not use non-random ASCII text and embed a picture in it?

Thus, this script.

And, thanks to Greenseed, there's no more PixelGetColor(), so no need to jump through hoops in Vista and Windows 7 for the sake of performance.

So, what this script does, is to take text (free of line breaks) and wrap it at the width you specify, then capture the region of your screen that you specify as the depth map (as always, black is the background, and the whiter a pixel is, the closer it will appear to be). You can optionally add a space between the columns of text, which makes it easier to read the original text on the left side of the output and lends what I think is kind of a neat look.

You can also specify how many layers will show up in front of the background- but ASCII stereograms always work best if you keep it to 1 or 2 layers.

It presents you with a preview of your text so you can make sure that the positions of text wrapping don't create any undesired words or phrases when juxtaposed with the adjacent column, and also to make sure that the last line fills the columns (required for best effect). Once it looks like you want and you've specified the region of your screen which defines the depth map, hit the "Create" button, and it will almost instantly ask you to save the output.

To see the stereogram, open the text file you saved, and use the "wall-eyed" method (not the cross-eyed method) of viewing stereograms. You'll notice also that the original text you inputted should remain relatively readable down the left side of the text block- the further right you go in the file, the necessarily more jumbled the text will be- this is how the 3d effects are made.

So, here's the script:

#include <GUIEdit.au3>
#include <ScreenCapture.au3>

#region GUISetups
Global $TGUI = GUICreate("T Screen Capture",50,1,@DesktopWidth/2,@DesktopHeight/2,-2147483648,136);$WS_POPUP,BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
Global $LGUI = GUICreate("L Screen Capture",1,50,@DesktopWidth/2,@DesktopHeight/2,-2147483648,136);$WS_POPUP,BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
Global $BGUI = GUICreate("B Screen Capture",50,1,@DesktopWidth/2-30,@DesktopHeight/2+20,-2147483648,136);$WS_POPUP,BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
Global $RGUI = GUICreate("R Screen Capture",1,50,@DesktopWidth/2+20,@DesktopHeight/2-30,-2147483648,136);$WS_POPUP,BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
GUISetState(@SW_SHOW,$TGUI)
GUISetState(@SW_SHOW,$LGUI)
GUISetState(@SW_SHOW,$BGUI)
GUISetState(@SW_SHOW,$RGUI)
Global $SelectBoxColor[2]=[0xFF0000,0xFFFFFF]
Global $SelectBoxCurrColor=0
AdlibRegister("FlashSelectBoxes",1000)

Global $GUI=GUICreate("Textual Stereogram",320,@DesktopHeight-100)
GUICtrlCreateLabel("Text to use:",0,0,270,20)
Global $TextInput=GUICtrlCreateInput("AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying ""runtimes"" required! AutoIt was initially designed for PC ""roll out"" situations to reliably automate and configure thousands of PCs. Over time it has become a powerful language that supports complex expressions, user functions, loops and everything else that veteran scripters would expect. Features: [truncated] AutoIt has been designed to be as small as possible and stand-alone with no external .dll files or registry entries required making it safe to use on Servers. Scripts can be compiled into stand-alone executables with Aut2Exe. Also supplied is a combined COM and DLL version of AutoIt called AutoItX that allows you to add the unique features of AutoIt to your own favourite scripting or programming languages! Best of all, AutoIt continues to be FREE - but if you want to support the time, money and effort spent on the project and web hosting then you may donate at the AutoIt homepage.",0,20,270,20)
GUICtrlCreateLabel("Cols:",270,0,50,20)
Global $ColsInput=GUICtrlCreateInput("19",270,20,50,20,0x2000);$ES_NUMBER=0x2000
GUICtrlCreateUpDown($ColsInput,0x80);$UDS_NOTHOSANDS=0x80
GUICtrlSetLimit(-1,35,1)
GUICtrlCreateLabel("Sample Output:",0,40,160,20)
Global $AddSpace=GUICtrlCreateCheckbox("Space between columns",160,40,160,20)
Global $TextOutput=GUICtrlCreateEdit("",0,60,320,@DesktopHeight-220)
GUICtrlSetFont($TextOutput,8.5,400,0,"Lucida Console")
GUICtrlCreateLabel("DepthMap capture region coord: x:",0,@DesktopHeight-160,180,20)
Global $CaptureXInput=GUICtrlCreateInput(Round(@DesktopWidth/2),180,@DesktopHeight-160,60,20,0x2000);$ES_NUMBER=0x2000
GUICtrlCreateUpDown($CaptureXInput,0x80);$UDS_NOTHOSANDS=0x80
GUICtrlCreateLabel("y:",250,@DesktopHeight-160,10,20)
Global $CaptureYInput=GUICtrlCreateInput(Round(@DesktopHeight/2),260,@DesktopHeight-160,60,20,0x2000);$ES_NUMBER=0x2000
GUICtrlCreateUpDown($CaptureYInput,0x80);$UDS_NOTHOSANDS=0x80
GUICtrlCreateLabel("Output size:",0,@DesktopHeight-140,120,20)
Global $ColSetting=GUICtrlCreateInput("0",0,@DesktopHeight-120,60,20)
Global $HeightLabel=GUICtrlCreateLabel("x 0 chars",70,@DesktopHeight-120,60,20)
GUICtrlCreateLabel("Highest layer:",150,@DesktopHeight-140,170,20)
Global $LayersInput=GUICtrlCreateInput("1",150,@DesktopHeight-120,60,20,0x2000);$ES_NUMBER=0x2000
GUICtrlCreateUpDown($LayersInput,0x80);$UDS_NOTHOSANDS=0x80
GUICtrlSetLimit(-1,9,1)
Global $GoButton=GUICtrlCreateButton("Create!",250,@DesktopHeight-120,70,20)
#endregion GUISetups

UpdatePreview()
GUISetState()
Global $CurrCols=GUICtrlRead($ColsInput)

#region main loop
While 1
    If _GUICtrlEdit_GetModify($TextInput) OR $CurrCols <> GUICtrlRead($ColsInput) Then UpdatePreview()
    $msg=GUIGetMsg()
    If $msg=-3 Then Exit;$GUI_EVENT_CLOSE
    If $msg=$AddSpace Then UpdatePreview()
    If $msg=$GoButton Then ExitLoop
    If $msg=$CaptureXInput OR $msg=$CaptureYInput  Then ResetCapturePreview()
WEnd
#endregion main loop

GUISetState(@SW_HIDE,$GUI)
GUISetState(@SW_HIDE,$TGUI)
GUISetState(@SW_HIDE,$BGUI)
GUISetState(@SW_HIDE,$LGUI)
GUISetState(@SW_HIDE,$RGUI)
AdlibUnRegister("FlashSelectBoxes")
Global $RepeatCols=GUICtrlRead($ColsInput)+Number(BitAND(GUICtrlRead($AddSpace),1))
Global $CountCols=GUICtrlRead($ColSetting)
Global $Layers=GUICtrlRead($LayersInput)

#region capturing mask
_GDIPlus_Startup();Thank you, Greenseed at http://www.autoitscript.com/forum/index.php?showtopic=62681 for allowing me to eliminate PixelGetColor()!
$GDIdll=DLLOpen("gdi32.dll")
$MemoryContext=DLLCall($GDIdll,"int","CreateCompatibleDC","int",0)
$MemoryContext=$MemoryContext[0]
$hBitmap=_ScreenCapture_Capture("",GUICtrlRead($CaptureXInput),GUICtrlRead($CaptureYInput),GUICtrlRead($CaptureXInput)+$CountCols,GUICtrlRead($CaptureYInput)+UBound($strRows),False)
DllCall($GDIdll,"hwnd","SelectObject","int",$MemoryContext,"hwnd",$hBitmap)
Global $Mask=""
For $y=0 To UBound($strRows)-1
    For $x=0 To $CountCols-1
        $Color=DLLCall($GDIdll,"int","GetPixel","int",$MemoryContext,"int",$x,"int",$y)
        $Mask&=$Layers-(Round($Color[0]/(16777215/$Layers)))
    Next
    $Mask&=@CRLF
Next
_WinAPI_DeleteObject($hBitmap)
DllClose($GDIdll)
;ConsoleWrite($Mask)
#endregion capturing mask

#region creating stereogram
Global $OutputStr=""
$Mask=StringSplit($Mask,@CRLF,3)
For $i=0 To UBound($strRows)-1
    $tmpMask=StringSplit($Mask[$i],"",2)
    For $_i=0 To $CountCols-1
        $strRows[$i]&=StringMid($strRows[$i],StringLen($strRows[$i])-(($RepeatCols-2)+$tmpMask[$_i]),1)
    Next
    $OutputStr&=StringTrimLeft($strRows[$i],$RepeatCols*2)&@CRLF
Next
#endregion creating stereogram

ConsoleWrite($OutputStr)
$file=FileSaveDialog("Save ASCII stereogram",@WorkingDir,"Text files (*.txt)",16)
If @error Then Exit
If NOT StringInStr(StringRight($file,StringLen($file)-StringInStr($file,"/",0,-1)),".") Then $file&=".txt"
If NOT @error Then $file=FileOpen($file,2)
FileWrite($file,$OutputStr)
FileClose($file)

#region functions
Func FlashSelectBoxes()
    $SelectBoxCurrColor=Number(NOT $SelectBoxCurrColor)
    GUISetBkColor($SelectBoxColor[$SelectBoxCurrColor],$TGUI)
    GUISetBkColor($SelectBoxColor[$SelectBoxCurrColor],$BGUI)
    GUISetBkColor($SelectBoxColor[$SelectBoxCurrColor],$LGUI)
    GUISetBkColor($SelectBoxColor[$SelectBoxCurrColor],$RGUI)
EndFunc
Func UpdatePreview()
    If GUICtrlRead($ColsInput)="" Then Return
    _GUICtrlEdit_SetModify($TextInput,0)
    $CurrCols=GUICtrlRead($ColsInput)
    GUICtrlSetData($TextOutput,"")
    $currtext=GUICtrlRead($TextInput)
    If BitAND(GUICtrlRead($AddSpace),1)=1 Then;$GUI_CHECKED=1
        $betCols=" "
    Else
        $betCols=""
    EndIf
    Do
        If StringLeft($currtext,2)=", " Then $currtext=StringTrimLeft($currtext,2)
        $currtext=StringStripWS($currtext,1)
        GUICtrlSetData($TextOutput,GUICtrlRead($TextOutput)&StringLeft($currtext,$CurrCols)&$betCols&StringLeft($currtext,$CurrCols)&$betCols&@CRLF)
        $currtext=StringTrimLeft($currtext,$CurrCols)
    Until StringLen($currtext) = 0
    Global $strRows=StringSplit(StringStripWS(GUICtrlRead($TextOutput),2),@CRLF,3)
    GUICtrlSetData($HeightLabel,"x "&UBound($strRows)&" chars")
    GUICtrlSetData($ColSetting,Round(2.25*UBound($strRows)))
    ResetCapturePreview()
EndFunc
Func ResetCapturePreview()
    WinMove($TGUI,"",GUICtrlRead($CaptureXInput)-1,GUICtrlRead($CaptureYInput)-1)
    WinMove($LGUI,"",GUICtrlRead($CaptureXInput)-1,GUICtrlRead($CaptureYInput)-1)
    WinMove($BGUI,"",(GUICtrlRead($CaptureXInput)-49)+GUICtrlRead($ColSetting),GUICtrlRead($CaptureYInput)+1+UBound($strRows))
    WinMove($RGUI,"",GUICtrlRead($CaptureXInput)+1+GUICtrlRead($ColSetting),(GUICtrlRead($CaptureYInput)-49)+UBound($strRows))
    _GUICtrlEdit_SetModify($CaptureXInput,0)
    _GUICtrlEdit_SetModify($CaptureYInput,0)
EndFunc
#endregion

...and here's a sample stereogram I created with the using the logo in the AutoIt website header, and the "typical" autoit description block of text as the ASCII input (masked due to the size of the block of text...I recommend copying it out of the spoiler/code box and pasting it into Notepad so you can see the whole block of text without scrolling).

AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free AutoIt v3 is a free Au
ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr ware BASIC-like scr wa
ipting language des ipting language des ipting language des ipting language des ipting language des ipting language des ipting language des ipting language des ipting language des ip
igned for automatin igned for automatin igned for automtinn igned for automtinn igned for automtinn igned for automtinn igned for automtinn igned for automtinn igned for automtinn ig
g the Windows GUI a g the Windows GUI a g the WindowsGUI a g  the WindowsGUI a g  the WindowsGUI a g  the WindowsGUI a g  the WindowsGUI a g  the WindowsGUI a g  the WindowsGUI a g  
nd general scriptin nd general scriptin nd general criptin nd  general criptin nd  general criptin nd  general criptin nd  general criptin nd  general criptin nd  general criptin nd 
g. It uses a combin g. It uses a combin g. It use a combin g. IIt use a combin g. IIt use a combin g. IIt use a combin g. IIt use a combin g. IIt use a combin g. IIt use a combin g. 
ation of simulated  ation ofsimulatedd  ation ofsmulateedd ationn ofsmulateedd ationn ofsmulateedd ationn ofsmulateedd ationn ofsmulateedd ationn ofsmulateedd ationn ofsmulateedd ati
keystrokes, mouse m keysrokes, mouse m keeysroke, mousse m keysrooke, mousse m keysrooke, mousse m keysrooke, mousse m keysrooke, mousse m keysrooke, mousse m keysrooke, mousse m key
ovement and window/ oement and window/ oemeent ad winddo/  omeentt ad winddo/  omeentt ad winddo/  omeentt ad winddo/  omeentt ad winddo/  omeentt ad winddo/  omeentt ad winddo/  ome
control manipulatiocontrol manipulatiocontrol manipulaatoccotrol mmanipulaatoccotrol mmanipulaatoccotrol mmanipulaatoccotrol mmanipulaatoccotrol mmanipulaatoccotrol mmanipulaatoccotr
n in order to autm n in order  to aum n in order  to aum  n n ordeer  to aum  n n ordeer  to aum  n n ordeer  to aum  n n ordeer  to aum  n n ordeer  to aum  n n ordeer  to aum  n n 
ate tasks in a wy  ate tassks in a wy  te tassks in a wyy  e tasskks in a wyy  e tasskks in a wyy  e tasskks in a wyy  e tasskks in a wyy  e tasskks in a wyy  e tasskks in a wyy  e t
not possible o rel not  possible o rel not possible o rell nt posssible o rell nt posssible o rell nt posssible o rell nt posssible o rell nt posssible o rell nt posssible o rell nt 
iable with oter la iaable with oter la iaabl with oter la  iabl wiith oter la  iabl wiith oter la  iabl wiith oter la  iabl wiith oter la  iabl wiith oter la  iabl wiith oter la  iab
nguages (e.g VBScr  nguages (e.g VBScr  nguage (e.g VBBSrr  guage  (e.g VBBSrr  guage  (e.g VBBSrr  guage  (e.g VBBSrr  guage  (e.g VBBSrr  guage  (e.g VBBSrr  guage  (e.g VBBSrr  gu
ipt and SenKeys).   ipt and SenKeys).   ipt and enKeyss).   pt andd enKeyss).   pt andd enKeyss).   pt andd enKeyss).   pt andd enKeyss).   pt andd enKeyss).   pt andd enKeyss).   pt
AutoIt is lso verry AutoIt is lso verry AutoIt islso vverry utoItt islso vverry utoItt islso vverry utoItt islso vverry utoItt islso vverry utoItt islso vverry utoItt islso vverry ut
small, sef-conttain small, sef-conttain small, sefconttain small,, sefconttain small,, sefconttain small,, sefconttain small,, sefconttain small,, sefconttain small,, sefconttain sma
ed and wil runn on  ed and wil runn on  ed and wil unn on  ed annd wil unn on  ed annd wil unn on  ed annd wil unn on  ed annd wil unn on  ed annd wil unn on  ed annd wil unn on  ed 
all versons off Win all versons off Win all versons ff Win all  versons ff Win all  versons ff Win all  versons ff Win all  versons ff Win all  versons ff Win all  versons ff Win all
dows ou-of-thhe-box dows ou-of-hhe--box dows ou-of-hh--box doows ou-of-hh--box doows ou-of-hh--box doows ou-of-hh--box doows ou-of-hh--box doows ou-of-hh--box doows ou-of-hh--box doo
with noannoyying "r with noanoyying  "r with noanoyyig  "r  with noanoyyig  "r  with noanoyyig  "r  with noanoyyig  "r  with noanoyyig  "r  with noanoyyig  "r  with noanoyyig  "r  wi
untime" reqquired!  untime" eqquired!!  untime" eqquird!!   untime" eqquird!!   untime" eqquird!!   untime" eqquird!!   untime" eqquird!!   untime" eqquird!!   untime" eqquird!!   un
AutoItwas iinitiall AutoItws iinitialll AutoItws iinitalll  AutoItws iinitalll  AutoItws iinitalll  AutoItws iinitalll  AutoItws iinitalll  AutoItws iinitalll  AutoItws iinitalll  Au
y desined  for PC " y desind  for PC "  y desind  for P "   y desnd  ffor P "   y desd  fffor P"   y desd  fffor PP"   y ded  fffor PP"   yy ded  fffr PP""   y ded  fffr PP""   yy de
roll ut" ssituation roll u" ssituation  roll u" ssituaton   roll " ssiituaton   roll  ssiiituaon   roll  ssiiituaaon   rol  ssiiituaaon   roll  ssiiiuaaonn   oll  ssiiiuaaonn    oll 
s to eliabbly autom s to eiabbly autom  s to eiabbly autm   s to iabblly autm   s to abbllly atm   s to abbllly  atm   sto abbllly  atm   sto aabblll  atmm   to aabblll  atmm    to a
ate nd coonfigure t ate n coonfigure t aate n coonfiguret aatte ncoonffiguret aatte noonfffigrret atte nooonfffigrret ate noooonfffigrre ate nooooonffigrrre tee noooonffiigrrre tee n
housnds oof PCs. Ov housds oof PCs. Ov hoousds oof PCs. O hooousd oof  PCs. O hooousdoof   PCs. O hoousdooof   PCs. O oousdoooof   PCs. O ousdooooof  PCs.. O ousdoooof   PCs.. O ousd
er tme itt has beco er me itt hha beco er  me itt hha bec er   meitt hhha bec er   mett hhhha bec er  mettt hhhha becer  meettt hhhha becer meetttt hhha bbecer meettt hhhha bbecer me
me  poweerful langu me poweerfful angu me  poweerfful ang me   poeerffful ang me   poerfffful ang me  poeerfffful angme  ppoeerfffful angme ppoeeerffful aangme ppoeerfffful aangme pp
agethat  supports c agthat  ssuppors c agthhat  ssuppors  agtthha  ssuuppors  agtthha ssuuuppors  agthha  ssuuuppors agthhha  ssuuuppors agthha  sssuupporrs agthha sssuuupporrs agthh
ompex exxpressions, opex exxxpressios, opexx exxxpressios opeexx xxxprressios opeexx xxprrressios opexx xxxprrressio opexxx xxxprrressio opexx xxxxprressiio opexx xxxprrressiio opexx
use funcctions, loo ue funccctions, oo ue fuunccctions, o ue  fuuccctiions, o ue  fuucctiiions, o ue fuuccctiiions,  ue ffuuccctiiions,  ue fuucccctiions,,  ue fuuccctiiions,,  ue fu
ps nd evverything e s nd evvverythinge s nd eevvverything s nnd evvverrything s nnd evverrrything s nd evvverrrythin s ndd evvverrrythin s nd evvvverrythiin s nd evvverrrythiin s nd 
lsethat  veteran sclsethatt  veteran slsethattt  veteran lsetthatt  veeteran lsetthat  veeeteran lsethat   veeeteran sethaat   veeeteran setaat    veeteraan setaat   veeeteraan setaa
ripers wwould expecriperss wwould experiperss  wwould expripeerss wwouuld expripeersswwouuuld expripersswwwouuuld expiperssswwwouuuld expipessswwwwouuld eexpipessswwwouuuld eexpipess
t. eaturres: [trun t. eaaturres: [trun . eaaturrres: [tru . eeaatrrres:: [tru . eeaarrress:: [tru . eaarrrress:: [tru. eaarrrrress:: [tru. aarrrrrres:: [ttru. aarrrrres::: [ttru. aar
ate] AuttoIt has e ate]  AuttIt has e ate]  AutttIt has eate]]  AuttIt hhas eate]] AuttItt hhas eate] AutttItt hhas eae] AuttttItt hhas ea] AutttttIt hhass ea] AuttttIt  hhass ea] Au
en esignned to b a en eesigned to b a en eesigneed to b aen eeesigned to b aen eeesignedd to b aen eesignnedd to b aen esignnedd to b aen esiggnnedd o b aaen esiggnedd oo b aaen esig
s smll ass possile s ssmll ss possile s ssmll ss  possil s sssmll ss possil s sssmll sss possil s ssmll ssss possil s ssml ssss possil s ssmll ssss pssil  s ssmll sss psssil  s ssmll
and tand--alonewit andd tan--alonewit andd tan--allonewi anddd tan--alonewi anddd taan--alonewi andd taaan--alonewi andd taan--alonewi anddd taan--alnewi  anddd taa--alnnewi  anddd t
h noexterrnal dll  hh noexerrnal dll  hh noexerrnnal dll hh nnoexerrnnal dll hh nnoexerrnnal dll hh noeexerrnnal dll hh noeexerrnal dlll hh noeexerrnl  dlll hh noeexrrnnl  dlll hh no
filesor reegistry e filesor reegistry e filesor reegistr e ffilesor reegistr e ffilesor reegistr e ffilesor reegistr e ffilesor reegistr e ffilesor reegistr e ffilesor reegistr e ffi
ntrie requuired mak ntrie requuired mak ntrie requuiredmak nntrie requuiredmak nntrie requuiredmak nntrie requuiredmak nntrie requuiredmak nntrie requuiredmak nntrie requuiredmak nnt
ing i safe  to use  ing i safe  to use  ing i safe  to se   ing i safe  to se   ing i safe  to se   ing i safe  to se   ing i safe  to se   ing i safe  to se   ing i safe  to se   in
on Serers.  Scripts on Serers.  Scripts on Serers.  Scipts  on Serers.  Scipts  on Serers.  Scipts  on Serers.  Scipts  on Serers.  Scipts  on Serers.  Scipts  on Serers.  Scipts  on
can becompilled int can becompilled int can becompille intt can becompille intt can becompille intt can becompille intt can becompille intt can becompille intt can becompille intt ca
o standalonee execu o standalonee execu o standaloneeexecuu o standaloneeexecuu o standaloneeexecuu o standaloneeexecuu o standaloneeexecuu o standaloneeexecuu o standaloneeexecuu o 
tables wth Auut2Exe tables wth Auut2Exe tables wth Aut2Exxe tables wth Aut2Exxe tables wth Aut2Exxe tables wth Aut2Exxe tables wth Aut2Exxe tables wth Aut2Exxe tables wth Aut2Exxe ta
. Also sppliedd is  . Also sppliedd is  . Also spplidd iss  . Also spplidd iss  . Also spplidd iss  . Also spplidd iss  . Also spplidd iss  . Also spplidd iss  . Also spplidd iss  . 
a combine COM  and  a combine COM  and  a combine CM  annd  a combine CM  annd  a combine CM  annd  a combine CM  annd  a combine CM  annd  a combine CM  annd  a combine CM  annd  a 
DLL versio of Auuto DLL versio of Auuto DLL versioof Auuuto DLL versioof Auuuto DLL versioof Auuuto DLL versioof Auuuto DLL versioof Auuuto DLL versioof Auuuto DLL versioof Auuuto DL
It called utoItX  t It called utoItX  t It calledutoItXX  t It calledutoItXX  t It calledutoItXX  t It calledutoItXX  t It calledutoItXX  t It calledutoItXX  t It calledutoItXX  t It
hat allows ou to aa hat allows ou to aa hat allos ou tto aa hat allos ou tto aa hat allos ou tto aa hat allos ou tto aa hat allos ou tto aa hat allos ou tto aa hat allos ou tto aa ha
dd the uniqu featu  dd the uniqu featu  dd theuniqu ffeatu  dd theuniqu ffeatu  dd theuniqu ffeatu  dd theuniqu ffeatu  dd theuniqu ffeatu  dd theuniqu ffeatu  dd theuniqu ffeatu  dd
res of AutoItto yo rees of AutoItto yo rees o AutoIttto yo rees o AutoIttto yo rees o AutoIttto yo rees o AutoIttto yo rees o AutoIttto yo rees o AutoIttto yo rees o AutoIttto yo ree
ur own favourit sc ur oown favourit sc ur own favoourit sc ur own favoourit sc ur own favoourit sc ur own favoourit sc ur own favoourit sc ur own favoourit sc ur own favoourit sc ur 
ripting or progrmm riptingg or progrmm iptingg orr progrmm iptingg orr progrmm iptingg orr progrmm iptingg orr progrmm iptingg orr progrmm iptingg orr progrmm iptingg orr progrmm ipt
ing languages! Bes ing languagees!Bes ing languuagees!Bes ing languuagees!Bes ing languuagees!Bes ing languuagees!Bes ing languuagees!Bes ing languuagees!Bes ing languuagees!Bes ing 
of all, AutoIt contof all, AutoIt contof all,, AutoIt contof all,, AutoIt contof all,, AutoIt contof all,, AutoIt contof all,, AutoIt contof all,, AutoIt contof all,, AutoIt contof a
inues to be FREE -  iues to be FREE -  iuess to be FREE -  iuess to be FREE -  iuess to be FREE -  iuess to be FREE -  iuess to be FREE -  iuess to be FREE -  iuess to be FREE -  iue
but if you want to  but f you want to  buut f you want to  buut f you want to  buut f you want to  buut f you want to  buut f you want to  buut f you want to  buut f you want to  buu
support the time, m support th timee, m support th timee, m support th timee, m support th timee, m support th timee, m support th timee, m support th timee, m support th timee, m su
oney and effort spe oney and effort spe oney and effort spe oney and effort spe oney and effort spe oney and effort spe oney and effort spe oney and effort spe oney and effort spe on
nt on the project a nt on the project a nt on the project a nt on the project a nt on the project a nt on the project a nt on the project a nt on the project a nt on the project a nt
nd web hosting then nd web hosting then nd web hosting then nd web hosting then nd web hosting then nd web hosting then nd web hosting then nd web hosting then nd web hosting then nd
you may donate at t you may donate at t you may donate at t you may donate at t you may donate at t you may donate at t you may donate at t you may donate at t you may donate at t yo
he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. he AutoIt homepage. h

Enjoy! :(

Edited by james3mg

Share this post


Link to post
Share on other sites



Posted (edited)

Wow, that's impressive! Well done

edit:

Minor bug - When I tried typing in the column count box (each change caused an update), i ran into an unfortunate condition when I erased the value. It went into some crazy loop. Should be easy to fix.

Edited by spudw2k

Share this post


Link to post
Share on other sites

Posted

Heh, I love stereograms :(

Share this post


Link to post
Share on other sites

Posted

that was awesome! took me a while to see the stereogram, but it's definitely there. Great job :(

Share this post


Link to post
Share on other sites

Posted (edited)

Minor bug - When I tried typing in the column count box (each change caused an update), i ran into an unfortunate condition when I erased the value. It went into some crazy loop. Should be easy to fix.

Good catch, thanks!

Fixed in the OP by adding If GUICtrlRead($ColsInput)="" Then Return to the top of the UpdatePreview() function.

I'm glad everyone's enjoying it :(

Edit: here are a few more that I did up at my dad's request:

When in the Course  When in the Course  When in the Course  When in the Course  When in the Course  When in the Course  When in the Course  When in t
 of human events it  of human events it  of human events it  of human events it  of human events it  of human events it  of human events it  of human 
 becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes n
 for one people to   for one people to   for one people to   for one people to   for one people to   for one people to   for one people to   for one p
 dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve 
 ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical band
 ave connected them  ave connected them  ave connected them  ave connected them  ave connected them  ave connected them  ave connected them  ave conne
 with another and t  with another and t  with another and t  with another and t  with another and t  with another and t  with another and t  with anot
 o assume among the  o assume among the  o assume among the  o assume among the  o assume among the  o assume among the  o assume among the  o assume 
 powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of
 h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the se
 d equal station to  d eql stationon to  d eql stationon to  d eql stationon to  d eql stationon to  d eql stationon to  d eql stationon to  d eql sta
 which the Laws of   ich the Laws of   icich the Laws of   icich the Laws of   icich the Laws of   icich the Laws of   icich the Laws of   icich the L
 Nature and of Natu  ture and of Natu  ture and o of Natu  ture and o of Natu  ture and o of Natu  ture and o of Natu  ture and o of Natu  ture and o 
 re's God entitle t  's God entitle t  's God entitle t  's s God entitle t  's s God entitle t  's s God entitle t  's s God entitle t  's s G entnti
 hem, a decent resp  m, a decent resp  m, a decent resp  m, a decent resp  m, a decentnt resp  m, a decentnt resp  m, a decentnt resp  m, a dectnt t r
 ect to the opinion ct to the opinion ct to the opinion ct to the opinion ct to the opinionon ct to the opinionon ct to the opinionon ct to thopinioio
 s of mankind requis of mankind requis of mankind requis of mankind requis of mankind requis of mankind d requis of mankind d requis of mankind requiu
 res that they shoures that they shoures that they shoures that they shoures that they shoures that they shshoures that they shshoures that th shshour
 ld declare the ca ld declare the ca ld declare the ca ld declare the ca ld declare the ca ld declare the ca a ld declare the ca a ld declarehe ca a a
 ses which impel t ses which impel t ses which impel t ses which impel t ses which impel t ses which impel t seses which impel t seses whi impel t t s
 em to the separa  em to the separa  em to the separa  em to the separa  em to the separa  em to the separa  em t to the separa  em to the separa a  e
 on. We hold the   on. We hold the   on. We hold the   on. We hold the   on. We hold the   on. We hold the   on. W We hold the   onW We hold the e   o
 truths to be sf-  truths to be sf-  truths to be sf-  truths to be sf-  truths to be sf-  truths to be sf-  truthshs to be sf-  tthshs to be sf-f-  t
 evident, that l   evident, that l   evident, that l   evident, that l   evident, that l   evident, that l   evidentnt, that l   identnt, that l l   i
 men are createeq  men are createeq  men are createeq  men are createeq  men are createeq  men are createeq  men arere createe men arere createe e men
 ual, that theyre  ual, that theyre  ual, that theyre  ual, that theyre  ual, that theyre  ual, that theyre  ual, ththat they  ual, ththat they    ual
 endowed by thr C  endowed by thr C  endowed by thr C  endowed by thr C  endowed by thr C  endowed by thr C  endoweded by thC  endoweded by thC C  end
 reator with rtai  reator with rtai  reator with rtai  reator with rtai  reator with rtai  reator with rtai  reator r with ai  reator r with a ai  rea
 n unalienablRigh  n unalienablRigh  n unalienablRigh  n unalienablRigh  n unalienablRigh  n unalienablRigh  n unalilienlRigh  n unalilienlRlRigh  n u
 ts, that amo the  ts, that amo the  ts, that amo the  ts, that amo the  ts, that amo the  ts, that amo the  ts, thahaamo the  ts, thahaamomo the  ts,
 se are Life,iber  se are Life,iber  se are Life,iber  se are Life,iber  se are Life,iber  se are Life,iber  se are Life,iber  se are Life,e,iber  se 
 ty and the psuit  ty and the psuit  ty and the psuit  ty and the psuit  ty and the psuit  ty and the psuit  ty and the psuit  ty and the p psuit  ty 
 of Happiness. Th  of Happiness. Th  of Happiness. Th  of Happiness. Th  of Happiness. Th  of Happiness. Th  of Happiness. Th  of Happinesess. Th  of 
 at to secure tse  at to secure tse  at to secure tse  at to secure tse  at to secure tse  at to secure tse  at to secure tse  at to secucure tse  at 
 rights, Governnt  rights, Governnt  rights, Governnt  rights, Governnt  rights, Governnt  rights, Governnt  rights, Governnt  rights, GoGovernnt  rig
 s are institut a  s are institut a  s are institut a  s are institut a  s are institut a  s are institut a  s are institut a  s are inststitut a  s a
 mong Men, dering  mong Men, dering  mong Men, dering  mong Men, dering  mong Men, dering  mong Men, dering  mong Men, dering  mong MeMen, dering  mon
 their just pows   their just pows   their just pows   their just pows   their just pows   their just pows   their just pows   their jujust pows   the
 from the conse o  from the conse o  from the conse o  from the conse o  from the conse o  from the conse o  from the conse o  from the e conse o  fro
 f the governed,   f the governed,   f the governed,   f the governed,   f the governed,   f the governed,   f the governed,   f the govoverned,   f t
 That whenever a   That whenever a   That whenever a   That whenever a   That whenever a   That whenever a   That whenever a   That whenenever a   Tha
 Form of Governme  Form of Governme  Form of Governme  Form of Governme  Form of Governme  Form of Governme  Form of Governme  Form of GoGovernme  For
 becomes destructi becomes destructi becomes destructi becomes destructi becomes destructi becomes destructi becomes destructi becomes dedestructi bec
 e of these ends, ie of these ends, ie of these ends, ie of these ends, ie of these ends, ie of these ends, ie of these ends, ie of thesese ends, ie o
 t is the Right of   is the Right of   is the Right of   is the Right of   is the Right of   is the Right of   is the Right of   is thehe Right of   i
 the People to alte  thPeople to alte  thPeople to alte  thPeople to alte  thPeople to alte  thPeople to alte  thPeople to alte  thPeoeople to alte  t
 r or to abolish it  r oto abolish it  r oto abolish it  r oto abolish it  r oto abolish it  r oto abolish it  r oto abolish it  r o oto abolish it  r
 and to institute n  ando institute n  ando institute n  ando institute n  ando institute n  ando institute n  ando institute n  anando institute n  a
 ew Government, lay  ew Govnment, lay  ew Govnment, lay  ew Govnment, lay  ew Govnment, lay  ew Govnment, lay  ew Govnment, lay  e ew Govnment, lay  e
 ing its foundation  ing its fouation  ing its fouation  ing its fouation  ing its fouation  ing its fouation  ing its fouation    ing its fouation   
 on such principles  on such princles  on such princles  on such princles  on such princles  on such princles  on such princleses  on such princleses 
 and organizing its  and organizing i  and organizing i  and organizing i  and organizing i  and organizing i  and organizing i i  and organizing i i 
 powers in such for  powers in such forpowers in such forpowers in such forpowers in such forpowers in such forpowers in such h forpowers in such h fo
 m, as to them shal  m, as to them shal  m, as to themhal  m, as to themhal  m, as to themhal  m, as to themhal  m, as to thememhal  m, as to thememha
 l seem most likely  l seem most likely  l seem most lily  l seem most lily  l seem most lily  l seem most lily  l seem most l lily  l seem most l lil
 to effect their Sa  to effect their Sa  to effect their   to effect their   to effect their   to effect their   to effect theheir   to effect theheir
 fety and Happiness  fety and Happiness  fety and Happines fety and Happines fety and Happines fety and Happppinefety and Happppppinefety and Happpppp
 . Prudence, indeed  . Prudence, indeed  . Prudence, indee . Prudence, indee . Prudence, indee . Prudedence, indee . Prudence, i indee . Prudence, i i
 will dictate that   will dictate that   will dictate that will l dtate that will l dtate that will l l dtate that will l ltate e that will l ltate e 
 Governments long e  Governments long e  Governments long e  vovernmes long e  vovernmemes long e ovovernmemes long e ovovememes s long e ovovememes s
 stablished should   stablished should   stablished should   stablisheshould   stablisisheshould   stablisisheshould   stablisheshshould   stablishesh
 not be changed for  not be changed for  not be changed for  not be chaed for  notot be chaed for  notot be chaed for  notote chaeded for  notote chae
 light and transien  light and transien  light and transien  light and tnsien  l light and tnsien  l light and tnsien  l lighand tnsnsien  l lighand t
 t causes; and acco  t causes; and acco  t causes; and acco  t causes; anacco  t t causes; anacco  t t causes; anacco  t t caus; ananacco  t t caus; a
 rdingly all experi  rdingly all experi  rdingly all experi  rdingly all peri    rdingly all peri    rdingly all peri    rdinglall p peri    rdinglall
 ence hath shewn th  ence hath shewn th  ence hath shewn th  ence hath she th    ence hath she th    ence hath she th    ence hatshehe th    ence hats
 at mankind are mor  at mankind are mor  at mankind are mor  at mankind are r    at mankind are r    at mankind are r    at mankind are r    at mankin
 e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e dispose
 er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while
 e sufferable than   e sufferable than   e sufferable than   e sufferable than   e sufferable than   e sufferable than   e sufferable than   e suffera
 to right themselve  to right themselve  to right themselve  to right themselve  to right themselve  to right themselve  to right themselve  to right 
 s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abol
 e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms t
 hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are

When in the Course  When in the Course  When in the Course  When in the Course  When in the Course  When in the Course  When in the Course  When in t
 of human events it  of human events it  of human events it  of human events it  of human events it  of human events it  of human events it  of human 
 becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes necessary   becomes n
 for one people to   for one people to   for one people to   for one people to   for one people to   for one people to   for one people to   for one p
 dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve the polit  dissolve 
 ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical bands which h  ical band
 ave connected them  ave connected them  ave connected them  ave connected them  ave connected them  ave connected them  ave connected them  ave conne
 with another and t  with another and t  with another and t  with another and t  with another and t  with another and t  with another and t  with anot
 o assume among the  o assume among the  o assume among the  o assume among the  o assume among the  o assume among the  o assume among the  o assume 
 powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of the eart  powers of
 h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the separate an  h, the se
 d equal station to  d equal station to  d equal station to  d equal station to  d equal station to  d equal station to  d equal station to  d equal s
 which the Laws of   which the Laws of   which the Laws of   which the Laws of which the LaLaws of which the LaLaws of which the LaLaws of which the L
 Nature and of Natu  Nure and of Natatu  Nure a of Natatu  Nurure a of Natat Nurure a of Natat t Nurure a of Natat t Nurura of Natat t NuNurura of Nat
 re's God entitle t  rs God entitle e t  rs Godntitle e t  rs s Godntitle t  rs s Godntitle t  r rs s Godntitle t  r rs s dntitle t  r rsrs s dntitle 
 hem, a decent resp  h, a decent resesp  h, a dent resesp  h, , a dent resp  h, , a dent resp  h, , , a dent resp  h, , , dent resp  h, , , , dent res
 ect to the opinion  e to the opinioion  e to t opinioion  e t to t opioion  e t to t opioion  e t t to t opioion  e t t tt opioion  e t t t tt opioio
 s of mankind requi  sf mankind reququi  sf mannd reququi  sf f mannd ququi  sf f mannd ququi  sf f f mannd ququi  sf f fannd ququi  sf f f fannd ququ
 res that they shou  r that they shohou  r thathey shohou  r t thatheshohou  r t thatheshohou  r t ththatheshohou  r t thatheshohou  r t t thatheshoho
 ld declare the cau  ldeclare the cacau  ldecla the cacau  ldedecla t cacau  ldedecla t cacau  ldedeclcla t cacau  ldedecla t cacau  ldededecla t caca
 ses which impel th  s which impel t th  s whicimpel t th  s w whiciml t th  s w whiciml t th  s w whihiciml t th  s w whiciml t th  s w w whiciml t t
 em to the separati  eto the separatati  eto thseparatati  eteto thseratati  eteto thseratati  eteto ththseratati  etetohthseratati  etetohohthseratat
 on. We hold these   o We hold thesese   o We hd thesese   o o We hdhesese   o o We hdhesese   o o We h hdhesese   o o Wh hdhesese   o o WhWh hdhesese
 truths to be self-  tths to be selflf-  tths tbe selflf-  tttths tbselflf-  tttthths tbsflf-  tttththshs tbsflf-  tttthshs tbsflf-  tttthshshs tbsflf
 evident, that all   edent, that allll   edent,hat allll   ededent,h allll   edededent,h all   edededenent,h all   ededenent,h all   ededenenent,h all
 men are created eq  m are created e eq  m are cated e eq  m m are ced e eq  m m m are ced eq  m m m arare ced eq  m m arare ced eq  m m ararare ced e
 ual, that they are  u, that they arare  u, thathey arare  u,u, thaty arare  u,u,u, thaty arare  u,u,u, thaty arare  u,u, thaty arare  u,u, t thaty ar
 endowed by their C  eowed by their r C  eowed btheir r C  eoeowed beir r C  eoeowewed beir r C  eoeowewed beir r C  eowewed beirir C  eowewewed beiri
 reator with certai  rtor with certatai  rtor wi certatai  rtrtor wiertatai  rtrtor wiwiertatai  rtrtor wiwiertatai  rtor wiwiertrtai  rtor w wiwiertr
 n unalienable Righ  nnalienable RiRigh  nnalienle RiRigh  nnnnalienlRiRigh  nnnnalienlRiRiRigh  nnnnalienlRiRiRigh  nnalienlRiRiRigh  nnalieienlRiRiR
 ts, that among the  t that among t the  t that ong t the  t t that o t the  t t that o t thehe  t t that o t thehe  t that o t t ehe  t thatat o t t 
 se are Life, Liber  sare Life, Libiber  sare Li, Libiber  sasare Li,ibiber  sasare Li,ibiber  s sasare Li,ibiber  s sare Li,ibibib  s sare L Li,ibibi
 ty and the pursuit  tand the pursusuit  tand thpursusuit  tatand thpuusuit  tatand thpuusuit  tatatand thpuusuit  tatand thpuususu  tatand ththpuusus
 of Happiness. — Th  oHappiness. — — Th  oHappins. — — Th  oHoHappins. — Th  oHoHappins. — Th  oHoHaHappins. — Th  oHaHappins. — —   oHaHappinins. — —
 at to secure these  ato secure thehese  ato sece thehese  atato sece these  atato sece these  atatoto sece these  atoto sece t thes atoto secece t th
 rights, Government  rhts, Governmement  rhts, Gernmement  rhrhts, Gernment  rhrhts, Gernment  rhrhtsts, Gernment  rhtsts, Gernrnmen rhtsts, GeGernrnm
 s are instituted a  sre instituteded a  sre instuteded a  srsre instutedea  srsre instutedea  srsre i instutedea  sre i instututede sre i inststutute
 mong Men, deriving  mg Men, deriviving  mg Men,eriviving  mgmg Men,erivivin mgmg Men,erivivin mgmg Menen,erivivingmg Menen,ererivivgmg Menen,e,ereriv
 their just powers   tir just powerers   tir juspowerers   titir juspowerers   tir juspowerers   tir jujuspowerers tir jujuspopowerertir jujuspopopowe
 from the consent o  fm the consentnt o  fm the nsentnt o  fmfm the nsentnt o  fmfmhe nsentnt o  fmfmhehe nsentnt  fmfmhehe nsnsentntfmfmhehe nsnsnsen
 f the governed, —   fhe governed, , —   fhe govned, , —   fhfhe govned, , —   fhfhe gned, , —   fhfhe g gned, , — fhfhe g gngned, , fhfhe g gngngned,
 That whenever any   Tt whenever anany   Tt whener anany   TtTt whener anany   TtTt when anany   TtTt whwhen anany TtTt whwhehen ananytTt whwhehehen a
 Form of Government  Fm of Governmement  Fm of Gernmement  FmFm of Gernmement  FmFm of Gerement  FmFm ofof Geremen FmFm ofof f GeremenmFm ofof f f Ger
 becomes destructiv  bomes destructctiv  bomes dtructctiv  bobomes ructctiv  bobobomes ructiv  bobobomeses ructivbobobomeses ructivbobobomeses rucucti
 e of these ends, i  ef these ends, , i  ef the ends, , i  efef thends, , i  efefef thends, i  efefef ththends, iefefef ththends, iefefef ththendsds, 
 t is the Right of   ts the Right of f   ts thRight of f   tsts thRht of f   tststs thRht of   tststs ththRht of tststs ththRht of tststs ththRht t of
 the People to alte  thPeople to alte e  thPele to alte e  t thPele  alte e  t ththPele  ae e  t ththPelele  ae  t ththPelele  ae  t ththPelele  aeae 
 r or to abolish it  r  to abolish it  r  to abolish it  r    to abosh it  r    toto abosit  r    toto a abosit     toto a abosit     toto a abositit 
 and to institute n  anto institute n  anto institute n  antoto instute n  antoto instute n  antoto insnstute n ntoto insnstute n ntoto insnstute n n 
 ew Government, lay  ewovernment, lay  ewovernment, lay  ewowovernme, lay  ewowovernme, lay  ewowovernmnme, layewowovernmnme, layewowovernmnme, layeye
 ing its foundation  inits foundation  inits foundation  ininits fouation  ininits fouation  ininits fofouationininits fofouationininits fofouationini
 on such principles  on ch principles  on ch principles  onon ch prinples  onon ch prinples  onon ch p prinple onon ch p prinple onon ch p prinple o o
 and organizing its  and ganizing its  and ganizing its  a and ganizinits  a and ganizinits  a and gananizinit a and gananizinit a and gananizinit a a
 powers in such for  powerin such for  powerin such for  p powerin suchor  p powerin suchor  p poweririn sucho p poweririn n sucho p powirin n sucho o
 m, as to them shal  m, as  them shal  m, as  them shal l  m, as  them sl l  m, as  them sl l  m, asas  them sl  m, asas  t them sl  m, as  t them sls
 l seem most likely  l seem st likely  l seem st likelyly  l seem st likely  l seem st likely  l seseem st lily  l seseem m st lily  l seem m st lily 
 to effect their Sa  to effectheir Sa  to effectheir r Sa  to effectheir r   to effectheir r   toto effectheir   toto effefectheir   totoffefectheir  
 fety and Happiness  fety and Hainess  fety and Haiainess  fety and Haiainessfety and Haiainessssfety and Hainessssfety anand Hainessssfe anand Haines
 . Prudence, indeed  . Prudence, ined  . Prudencnce, ined  . Prudencnce, ined  .rudencnce, i ined  .rudencnc i ined  .rududencnc i ined  ududencnc i i
 will dictate that   will dictate that   will dictate that   will dictate that   will dictate that   will dictate that   will dictate that   will dict
 Governments long e  Governments long e  Governments long e  Governments long e  Governments long e  Governments long e  Governments long e  Governmen
 stablished should   stablished should   stablished should   stablished should   stablished should   stablished should   stablished should   stablishe
 not be changed for  not be changed for  not be changed for  not be changed for  not be changed for  not be changed for  not be changed for  not be ch
 light and transien  light and transien  light and transien  light and transien  light and transien  light and transien  light and transien  light and
 t causes; and acco  t causes; and acco  t causes; and acco  t causes; and acco  t causes; and acco  t causes; and acco  t causes; and acco  t causes;
 rdingly all experi  rdingly all experi  rdingly all experi  rdingly all experi  rdingly all experi  rdingly all experi  rdingly all experi  rdingly a
 ence hath shewn th  ence hath shewn th  ence hath shewn th  ence hath shewn th  ence hath shewn th  ence hath shewn th  ence hath shewn th  ence hath
 at mankind are mor  at mankind are mor  at mankind are mor  at mankind are mor  at mankind are mor  at mankind are mor  at mankind are mor  at mankin
 e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e disposed to suff  e dispose
 er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while evils ar  er, while
 e sufferable than   e sufferable than   e sufferable than   e sufferable than   e sufferable than   e sufferable than   e sufferable than   e suffera
 to right themselve  to right themselve  to right themselve  to right themselve  to right themselve  to right themselve  to right themselve  to right 
 s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abolishing th  s by abol
 e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms to which t  e forms t
 hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are accustomedd hey are

We the People   We the People   We the People   We the People   We the People   We the People   We the People   We the People   We the Pe
 of the United   of the United   of the United   of the United   of the United   of the United   of the United   of the United   of the Un
 States, in Ord  States, in Ord  States, in Ord  States, in Ord  States, in Ord  States, in Ord  States, in Ord  States, in Ord  States, i
 er to form a m  er to form a m  er to form a m  er to form a m  er to form a m  er to form a m  er to form a m  er to form a m  er to for
 ore perfect Un  ore perfect Un  ore perfect Un  ore perfect Un  ore perfect Un  ore perfect Un  ore perfect Un  ore perfect Un  ore perfe
 ion, establish  ion, establish  ion, establish  ion, establish  ion, establish  ion, establish  ion, establish  ion, establish  ion, esta
 Justice, insur  Justice, insur  Justice, insur  Justice, insur  Justice, insur  Justice, insur  Justice, insur  Justice, insur  Justice, 
 e domestic Tra  e domestic Tra  e domestic Tra  e domestic Tra  e domestic Tra  e domestic Tra  e domestic Tra  e domestic Tra  e domesti
 nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility,
 ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for t
 mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defe
 promote the ge  promote the ge  promote the ge  promote the ge  promote e ge  promomote e ge  promomote e ge  promomote e ge  promomote e
 neral Welfare,  ner Welfare,  nener Welfar  nener Welfarar  nener Welrar  nener Welrarar  nener Welrarar  nenerelrarar  nenererelrarar  n
 and secure the  andecure the  anandecure t  anandecure t t  anandece t t  anandece t t t  anandece t t t  anande t t t  anandnde t t t  a
 Blessings of L  Bleings of L  BlBleings of  BlBleings ofof  BlBlegs ofof  BlBlegs ofof  B BlBlegs ofof  B BlBle ofof  B BlBlele ofof  B B
 iberty to ours  ibey to ours  ibibey to ou  ibibey to ouou  ibib to ouou  ibib to ouou  ibibib to ouou  ibibib  ouou  ibibib b  ouou  ibi
 elves and our   elv and our   elelv and ou  elelv and ouou  ele and ouou  ele and ouou  elele and ouou  elele d ouou  elele d d ouou  ele
 Posterity, do   Posrity, do   PoPosrity, d  PoPosrity, d d  Posrity, d d  Posrity, d d  Posrsrity, d d  Posrsry, d d  Posrsry,y, d d  Pos
 ordain and est  ordn and est  orordn and e  orordn and e e  ordn and e e  ordn and e e  ordn n and e e  ordn nnd e e  ordn nndnd e e  ord
 ablish this Co  ablh this Co  abablh this   abablh thisis   ablh thisis   ablh thisis   ablh t thisis   ablh thisis   ablh thisisis   abl
 nstitution for  nstution for  nsnstution f  nsnstution n f  nstution n f  nstution n f  nstutition n f  nstution n f  nstution n n f  nst
 the United Sta  thenited Sta  ththenited S  ththenited d S  thenited d S  t thenid d S  t thenenid d S  t thenid d S  t thenid d d S  t t
 tes of America  tesf America  tetesf Ameri  tetesf Amereri  tesf Amereri    tesf Areri    tesfsf Areri    tesf Areri    tesf Arereri    t
 .We the People  .Wehe People  .W.Wehe Peopl .W.Wehe Peoeopl .Wehe Peoeopl l .Wehe Peopl l .Wehehe Peopl l .Wehe Peopl l .Wehe PePeopl l .
 of the United   of e United   ofof e United ofof e Unitited of e Unitited d of e Unitited d of e Unitited d  e Unitited d  e Unititited d
 States, in Ord  Stas, in Ord  StStas, in Or StStas, in n Or Stas, in n Or StStas, in n Or StStas, in n Or Stas, in n O  Stas, in n n O  S
 er to form a m  er  form a m  erer  form a  erer  form m a  er  form m a  er    form m a  er    form m a  e   form m a  e   form m m a  e
 ore perfect Un  oreerfect Un  o oreerfect U o oreerfectct U o eerfectct U o eerfefectct U o eerfefectct U oerfefectctct oerfefectctctct o
 ion, establish  ionestablish  i ionestablis i ionestablblis i nestablblis i nestablblblis i nestablblblis iestablblblbl iestablblblblbl i
 Justice, insur  Jusce, insur  J Jusce, insu J Jusce, ininsu J Jce, ininsu J Jce, ininsu J J Jce, ininsu J Jce, ininsusu Jce, inininsusu J
 e domestic Tra  e destic Tra  e e destic Tr e e destic c Tr e e stic c Tr e e stic c Tr e e e stic c Tr e e stic c TrTr e stic c T TrTr e
 nquility, prov  nquity, prov  n nquity, pro n nquity, p pro n nqty, p pro n nqty, p pro n n nqty, p pro n nqty, p prpro nqty, p prprpro n
 ide for the co  ideor the co  i ideor the c i ideor thehe c i ide thehe c i ide thehe c i idide thehe c idide thehe e c ide thehe e e c i
 mmon defence,   mmodefence,   m mmodefence, m mmodefencnce, m mmodencnce, m mmodencnce, m mmomodencnce, mmomodencncece, omodencncecece, o
 promote the ge  prote the ge  p prote the g p prote thehe g p prote the g p prote the g p protote the g protote thehe g otote thehehe g o
 neral Welfare,  ner Welfare,  n ner Welfare n ner Welfafare n ner Welfafe n ner Welfafe n ner r Welfafe ner r Welfafafe n r Welfafafafe n
 and secure the  andecure the  a andecure th a andecure e th a andecure e th andecure e th andedecure e tandedecure e e taedecure e e e ta
 Blessings of L  Bleings of L  B Bleings of  B Bleings o of  B Bleings o of  B eings o of  B einings o ofB einings s o ofB nings s o o ofB
 iberty to ours  ibey to ours  i ibey to our i ibey to o our i ibey to o our i ib to o our i ib b to o oui ib b to o o oui  b to o o o oui
 elves and our   elv and our   e elv and our e elv and o our e elv and o our e elv d o our e elvlv d o o e elvlv d d o o e vlv d d o o o e
 Posterity, do   Posrity, do   PoPosrity, do PoPosrity, , do Posrity, , d do Posrity, d do Posririty, d  Posririty, d  Posririty, d  P Pos
 ordain and est  ordn and est  ordrdn and e  ordrdn and d e  ordn and d e e  ordn and e e  ordn n and e  ordn n and e  ordn n and e  o ord
 ablish this Co  abli this Co  ablili thiso  ablili thihiso  aili thihiso o  aili thiso o  aili i thiso  aili i thiso  aili i thiso  aiail
 nstitution for  nstition for  nstition for  nstition f for  nstion f for    nstiof for    nstioiof for  nstioiof for  nstioiof for  nsnst
 the United Sta  the ited Sta  the ited Sta  the ited StSta  t ited StSta  t ited StSta  t iteded StStat iteded StStat iteded StStat itite
 tes of America  tes  America  tes  America  tes  Ameririca  te Ameririca  te Ameririca  te Amemeriric te Amemeriric te Amemeriric te AmAm
 .We the People  .We e People  .We e People  .We e Peopople  .We Peopople  .We Peopople  .We PePeopopl .We PePeopopl .We PePeopopl .We P P
 of the United   of thUnited   of thUnited   of thUnitited   of Unitited   of Unitited   of UnUnitite  of UnUnitite  of UnUnitite  of UnUn
 States, in Ord  Statesin Ord  Statesin Ord  Statesinin Ord  Statinin Ord  Statinin Ord  Statitinin O  Statitinin O  Statitinin O  Statiti
 er to form a m  er to fm a m  er to fm a m  er to fmfm a m  er tomfm a m  er tomfm a m  er t tomfm a  er t tomfmfm a  er t tfmfm a  er t 
 ore perfect Un  ore perft Un  ore perft Un  ore peperft Un  ore perft Un  ore perft Un  orere perft   orere perfrft   orere rfrft   orere
 ion, establish  ion, estaish  ion, estaish  ion, , estaish  ion, , taish  ion, , taish  ioion, , tah  ioion, , , tah  ioion, , tah  ioion
 Justice, insur  Justice, ins  Justice, ins  JuJustice, ins  JuJusticeins  JuJusticeins s  JuJustices s  JuJustitices s  JuJustices s  JuJ
 e domestic Tra  e domestic Tra  domestic TrTra  domestic TrTra  domesticrTra  domeststicrTra  domesticrTra  domomesticrTra  domesticrTra 
 nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility, prov  nquility,
 ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for the co  ide for t
 mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defence,   mmon defe
 promote the ge  promote the ge  promote the ge  promote the ge  promote the ge  promote the ge  promote the ge  promote the ge  promote t
 neral Welfare,  neral Welfare,  neral Welfare,  neral Welfare,  neral Welfare,  neral Welfare,  neral Welfare,  neral Welfare,  neral Wel
 and secure the  and secure the  and secure the  and secure the  and secure the  and secure the  and secure the  and secure the  and secur
 Blessings of L  Blessings of L  Blessings of L  Blessings of L  Blessings of L  Blessings of L  Blessings of L  Blessings of L  Blessings
 iberty to ours  iberty to ours  iberty to ours  iberty to ours  iberty to ours  iberty to ours  iberty to ours  iberty to ours  iberty to
 elves and our   elves and our   elves and our   elves and our   elves and our   elves and our   elves and our   elves and our   elves and
 Posterity, do   Posterity, do   Posterity, do   Posterity, do   Posterity, do   Posterity, do   Posterity, do   Posterity, do   Posterity
 ordain and est  ordain and est  ordain and est  ordain and est  ordain and est  ordain and est  ordain and est  ordain and est  ordain an
 ablish this Co  ablish this Co  ablish this Co  ablish this Co  ablish this Co  ablish this Co  ablish this Co  ablish this Co  ablish th
 nstitution for  nstitution for  nstitution for  nstitution for  nstitution for  nstitution for  nstitution for  nstitution for  nstitutio
 the United Sta  the United Sta  the United Sta  the United Sta  the United Sta  the United Sta  the United Sta  the United Sta  the Unite
 tes of Americaa tes of Americaa tes of Americaa tes of Americaa tes of Americaa tes of Americaa tes of Americaa tes of Americaa tes of A

Edited by james3mg

Share this post


Link to post
Share on other sites

Posted (edited)

Excellent work!

Though I personally tried a few styles to try and get the "random" pattern to be meaningful itself and still let the 3-d show through, I never succeeded (I actually think the formulas I was using may have been flawed- maybe I'll go back and see if I could improve them later).

Since I wrote my 'noise' style stereogram script (see my sig), I've gotten much more used to GDI so I might have a look at a bitmap approach. Lucklily for us, the approach is exactly the same as you are doing here...

1) create a repeating pattern (can be any sort of image)

2) decide how much you need to horizontally shift each pixel based on your depth-map,

ensuring your 'range' doesn't exceed the width of a tile

3) shift all pixels in current tile to the left

4) shift all pixels in subsequent tiles by an equal ammount to the right LEFT

Sort of off-topic slightly, there's an interesting/fun phenomenon I've discovered as a result of working with stereograms. As you become more adept at controlling your eyes to 'manually' adjust your focal point, you'll be able to combine just about anything you see into a single focused image. If the two things you combine are totally different the focused image will be nonsense in dimensional terms and will not make 'sense' in your brain. This can actually be quite useful if you want to compare things to see if they are the same, and I often do this without thinking (e.g. comparing long numbers, long lines of text etc). As long as you can combine the two items with your eyes, any differences stand out as visual abberations.

One fun aspect of this is easily being able to solve spot-the-difference puzzles. Take this for example.

To solve this, a 'normal' person would scan each picture in turn trying to see the differences. My approach is to combine the two images with my eyes. The differences stand out immediately; solving the puzzle takes as long as it takes you to combine the images, perhaps less than a second. Quiz machines in pubs often have a spot the difference game which can be solved doing this. My mates think I am some sort of spot-the-difference god, but really it's all eye control!

Edited by andybiochem

Share this post


Link to post
Share on other sites

Posted (edited)

1) create a repeating pattern (can be any sort of image)

2) decide how much you need to horizontally shift each pixel based on your depth-map,

ensuring your 'range' doesn't exceed the width of a tile

3) shift all pixels in current tile to the left

4) shift all pixels in subsequent tiles by an equal ammount to the right

It's that fourth step that I'd always misinterpreted until I wrote this ASCII stereogram script- I hadn't realized that when you shift the pixels/characters left (thus eliminating a character from the sequence), that establishes a new "baseline" for the repeating string. In other words, the eliminated character is NEVER reinstated in the string. Likewise, when you double (or more) a character to bring the region back "down" a plane, that doubled character is now a part of the "baseline" sequence, too.

So if my pattern for a particular row was:

1234567890123456789012345678901234567890123456789012345678901234567890

and my depth map required a per-pixel shift of:

0000000000000011111111111111111111111111000000000000000000000000000000

The row will be transformed into:

1234567890123467890123467890123467890123346789012334678901233467890123

(notice that the 5 never appears again once the shift starts, and the three is always doubled once the shift is over). Before, I'd thought the pattern on the background remained unaffected all the way across the stereogram, and only the "forward" regions had shifted bits... more like

1234567890123467890123456789012345678901123456789012345678901234567890

(which really doesn't work...the "forward" region drops back to the background at the first 5, and gets kinda garbled at the doubled 1. I think the only reason my stereograms kinda worked using this method, was that there was ENOUGH transformation across each row that it was constantly adjusting and kind of made up the difference).

Interesting stuff...it's REALLY amazing how powerful our brains are, that they can put all this seemingly garbled, random, information together so quickly...can you imagine trying to bot a stereogram game? I don't think there's any way your computer could really grab the pixels, analyze to find the differences and respond ANYWHERE near quickly enough! 'Course, I haven't tried, either ;-)

Edit: Andy, I hadn't meant this as a lecture for you telling you what you already know; I was just noting how I'd gotten it wrong in the past, while explaining to others how they work :(

Edited by james3mg

Share this post


Link to post
Share on other sites

Posted

james3mg,

Thank you for that! :(

I love stereograms (once I learnt how to see them!) and would never have believed that it was possible to create them using ASCII text.

M23

Share this post


Link to post
Share on other sites

Posted (edited)

4) shift all pixels in subsequent tiles by an equal ammount to the right

ooops, just re-read this, it should actually be "to the left". All changes made in one tile should be repeated in subsequent tiles.

Edit: Andy, I hadn't meant this as a lecture for you telling you what you already know; I was just noting how I'd gotten it wrong in the past, while explaining to others how they work

Don't worry I didn't think that for a minute!

When I first got into these back in the 90's, I used to create them by hand using a pen and stencil. One of my mates was particularly good at it and could draw them completely freehand!

Similarly to your example, the follwing example explains it quite well too...

imagine a repeating background sequence:

o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o

Making a simple deletion in one line (the 2nd line) shifts the character upwards,

but also shifts the next character downwards:

o  o  o  o  o  o  o  o  o  o
o  o  o o   o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o

To correct this all subsequent characters need an equal shift:

o  o  o  o  o  o  o  o  o  o
o  o  o o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o
o  o  o  o  o  o  o  o  o  o

Now we have a sinle raised character.

Multiple levels can be achieved with multiple deletions:

&   &   &   &   &   &   &   &   &   
&   &   &   &   &   &   &   &   &   
&   &  &  &  &  &  &  &  &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  & & & & & & & & & &  &   &   
&   &  &  &  &  &  &  &  &  &   &   
&   &   &   &   &   &   &   &   &   
&   &   &   &   &   &   &   &   &

This becomes more complicated when using 'tiles' of images or noise, because the shift left or right cannot be greater than the width of the tile itself.

Glad someone else finds this fascinating too!!

Edited by andybiochem

Share this post


Link to post
Share on other sites

Posted

Looks great!

Share this post


Link to post
Share on other sites

Posted

Looks great!

It's amazing.

once your eyes have locked in try turning your head round, ie so your eyes go from horizontally aligned towards vertically, and see how far you can go before the effect becomes impossible to maintain. With me I can get to nearly 45 degrees I guess. Getting one eye to go up while the other goes down is really unnatural.

Share this post


Link to post
Share on other sites

Posted

@ Martin,

Ah yes, amazing :(

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  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.