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:
http://filesmelt.com/Imagehosting/pi...a9f204d8e3.png
1.2 Bilder:
http://filesmelt.com/Imagehosting/pi...68a48a9d62.pnghttp://filesmelt.com/Imagehosting/pi...f499b50650.png
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:
http://tbn0.google.com/images?q=tbn:...eheadshade.jpg
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()