Hi, ich habe ein Programm gemacht was Sachen vom Bildschirm abliest und diese dann in MSN nachmalt.
Farben konvertiert er zu Greyscale und malt diese dann im Schachbrettformat.
1.0 Bild:
1.2 Bilder:
![]()
Download (1.2):
http://filesmelt.com/Filehosting2/do...e_draw_1_2.rar
Ihr müsst dem billigem GUI folgen, dann sollte es schon klappen. Das Bild dürft ihr bis zum 4. Schritt nicht verdecken. Er liest es nach dem 3. Schritt ab.
Wenn das Bild zu hell oder zu dunkel wird, müsst ihr im 3. Schritt 50 oder -50, oder mehr hinschreiben.
!Wenn ihr Aero habt, (Durchsichtige Fenster) solltet ihr diese ausschalten! Das Programm wird sonst 100x langsamer!
Sobald der Cursor sich nicht mehr bewegt, auch wenn MSN noch malt (scheiß MSN) könnt ihr was anderes machen.
Um große Bilder zu verschicken braucht ihr msn 8.5 oder weniger. (Dazu ein Tip: Wenn es updaten will, stellt ihr es auf Windows 2000 Compatibility)
Natürlich klappt das Programm auch mit allen anderen Programmen.
Sollte das Programm durchdrehen könnt ihr es mit "PAUSE" abbrechen.
Es funktioniert am besten mit Graustufen Bilder.
Hier ist ein schönes Bild zum ausprobieren:
Das Programm ist in einer billigen Scriptsprache namens "AutoIt3" geschrieben, wer die exe nicht mag weil ich ja nichts besseres zu tun habe als Keylogger zu verbreiten, ist hier die source:
Code:#include "math.au3" hotkeyset( "{PAUSE}", "meep") dim $greyscale [4] dim $topleftX dim $topleftY dim $bottomrightX dim $bottomrightY dim $abstand dim $startX dim $startY dim $modifier dim $pixel dim $count = 1 ;$contrast = 50 func meep() Exit EndFunc func start() $exit = msgbox (1, "(1 of 5) Top Left", "Have this window focused, then put your mouse on the top left of your image and hit enter.") if $exit = 2 then exit $dummy = mousegetpos() $topleftX = $dummy[0] $topleftY = $dummy[1] $exit = msgbox (1, "(2 of 5) Bottom Right", "Nice one. Now put it on the bottom right corner.") if $exit = 2 then exit $dummy = mousegetpos() $bottomrightX = $dummy[0] $bottomrightY = $dummy[1] $modifier = InputBox( "(3 of 5) Modifier", "Add how much darkness? -255 to 255. If you don't know leave it at 0.(Short wait after this window, image being processed!)", "0") if @error = 1 then exit new1() endfunc func new1() dim $pixel [3000][3000] for $y = $topleftY to $bottomrightY for $x = $topleftX to $bottomrightX $greyscale[0] = PixelGetColor($x, $y) $greyscale[1] = 0.299 * BitAND(BitShift($greyscale[0], 16), 255) $greyscale[2] = 0.587 * BitAND(BitShift($greyscale[0], 8), 255) $greyscale[3] = 0.114 * BitAND($greyscale[0], 255) $greyscale[0] = ($greyscale[1] + $greyscale[2] + $greyscale[3]) $pixel[$x][$y] = $greyscale[0] - $modifier if $pixel[$x][$y] > 255 then $pixel[$x][$y] = 255 if $pixel[$x][$y] < 0 then $pixel[$x][$y] = 0 if $greyscale[0] > 245 then $pixel[$x][$y] = 255 next next for $y = $topleftY to $bottomrightY for $x = $topleftX to $bottomrightX $oldpixel = $pixel[$x][$y] $newpixel = round($oldpixel / 255) * 255 $pixel[$x][$y] = $newpixel $quant_error = $oldpixel - $newpixel $pixel[$x+1][$y] = $pixel[$x+1][$y] + 7/16 * $quant_error $pixel[$x-1][$y+1] = $pixel[$x-1][$y+1] + 3/16 * $quant_error $pixel[$x][$y+1] = $pixel[$x][$y+1] + 5/16 * $quant_error $pixel[$x+1][$y+1] = $pixel[$x+1][$y+1] + 1/16 * $quant_error next next intermission() endfunc ;func changecontrast() ;for $y = $topleftY to $bottomrightY ; for $x = $topleftX to $bottomrightX ; if $pixel[$x][$y] < 127.5 then ; $pixel[$x][$y] += $pixel[$x][$y] * (($contrast / 100 + 1) * (255 / (255 - $pixel[$x][$y]) + 1)) ; else ; $pixel[$x][$y] += $pixel[$x][$y] * (1 - ($contrast / 100)) * (255 / (255 - $pixel[$x][$y])) ; endif ; next ;next ;endfunc func intermission() $abstand = InputBox( "(4 of 5) Space", "(The image is not needed from now on) The space between each pixel. Leave at 0 if you don't know.", "0") if @error = 1 then exit $exit = msgbox ( 1, "(5 of 5) Start", "Now put your mouse where you want the top left corner to be. Make sure there's enough space. A second after you hit OK the image will be drawn.") if $exit = 2 then exit $dummy = mousegetpos() $StartX = $dummy[0] $StartY = $dummy[1] sleep(500) Mousemove( $StartX + (($bottomrightX - $topleftX) * ($abstand + 1)) + 1, $StartY - 1, 0) mousedown( "left") mouseup( "left") sleep(500) new2() endfunc func new2() for $y = $topleftY to $bottomrightY for $x = $topleftX to $bottomrightX if $pixel[$x][$y] = 0 Then Mousemove( $StartX + ($abstand + 1) * ($x - $topleftX) , $startY + ($abstand + 1) * ($y - $topleftY), 0) for $c = 1 to $count mousedown( "left") mouseup( "left") next endif next next $restart = msgbox( 1, "Again", "Rerun the program?") if $restart = 1 then start() endfunc start()






Zitieren




