Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
05.03.12, 12:45
|
#1
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 14
Bedankt: 2
|
AHK Hilfe Gesucht
Erstmal einen schönen guten Tag.
Ich brauche Hilfe für folgendes Problem:
Wenn ich ein Bild nach Pixeln auslese möchte ich dieses gerne in einer GUI anzeigen lassen, allerdings möchte ich nur die weiße farbe von dem Bild auf den schwarzen Hintergrund der GUI einblenden.
Das Problem ist das ich einfach nichts finde wie ich einzelne Pixel an bestimmten Koordinaten ändern kann.
Wenn mir doch bitte jemand ein Befehl nennen und beschreiben kann der dazu in der Lage ist wäre ich im dafür sehr dankbar !
|
|
|
05.03.12, 16:45
|
#2
|
Erfahrenes Mitglied
Registriert seit: Jul 2010
Beiträge: 489
Bedankt: 236
|
Welche Programmiersprache?
|
|
|
07.03.12, 20:30
|
#3
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 14
Bedankt: 2
|
Na (AHK)Autohotkey, also nichts Weltbewegendes^^
|
|
|
09.03.12, 00:03
|
#4
|
Ist öfter hier
Registriert seit: Nov 2009
Beiträge: 219
Bedankt: 189
|
kenne ich mit autohotkey nun absolut nicht aus, aber da ja sonst keiner hier antwortet.
laut dokumentation sollte das recht einfach sein.
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
sollte dir dabei helfen
|
|
|
09.03.12, 12:14
|
#5
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 14
Bedankt: 2
|
Ich weiß deine Hilfsbereitschaft zu schätzen =)
aber leider muss ich dir sagen das mir dies nicht weiter hilft.
ich kenne mich ja schon ein wenig aus und kenne auch diesen befehl, nur lässt sich damit nur der Pixel an einer bestimmten Position auslesen, aber leider nicht verändern
kannst du mir eine Sprache empfehlen mit der ich das kann, damit ich den s***** dann einbinden kann ?
|
|
|
20.03.12, 08:13
|
#6
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 14
Bedankt: 2
|
Ok, ich habe jetz eine lösung gefunden.
Für alle die eventuell das selbe problem haben könnten oder mal haben werden, werde ich hier mal eine lösung posten:
Allerdings können pixel meines wissens nur in einer gui verändert werden.
Wie ihr aber allerdings wisst kann eine gui auch durchsichtig gemacht werden.
Diese pixel sind in wirklichkeit steuerelemente mit der größe eines pixels und brauchen daher etwas zeit um gesetzt zu werden(kommt natürlich darauf an wieviele gesetzt werden).
Rot: Wenn man einen pixel setzt dann hat dieser pixel einen rahmen von 2 pixeln, diese funktion lässt diesen allerdings verschwinden
Blau: Dies ist der pixel der gesetzt wird. Der erste wert steht für die X koordinate und der zweite für die y koordinate, der dritte wert steht für die größe und der letzte für die farbe(die farbe kann auch als farbcode angegeben werden).
Zitat:
Gui, Show, w250 h200, gui1: unique title Gui
SelectCanvas( "gui1: unique title" )
SetPixel( 5, 15, 10, "blue" )
SetPixel( 50, 30, 5, "green" )
SetPixel( 100, 80, 70, "yellow" )
return
GuiClose:
ExitApp
SelectCanvas( p_title=false )
{
static hw_canvas
if ( !p_title )
return, hw_canvas
Process, Exist
WinGet, hw_canvas, ID, %p_title% ahk_class AutoHotkeyGUI ahk_pid %ErrorLevel%
}
SetPixel( p_x, p_y, p_size, p_color )
{
static total
total++
Gui, Add, Progress, % "x" ( p_x-1 ) " y" ( p_y-1 ) " w" ( p_size+2 ) " h" ( p_size+2 ) " background" p_color
hw_canvas := SelectCanvas()
; WS_EX_STATICEDGE
Control, ExStyle, -0x20000, msctls_progress32%total%, ahk_id %hw_canvas%
WinSet, Redraw,, ahk_id %hw_canvas%
}
|
Bei folgendem kann auf die funktion verzichtet werden, allerdings hat man dann den rahmen.
Die variablen werte können auch direkt eingesetz werden, bei der farbe allerdings nicht.
Zitat:
Gui, Show, w250 h200, gui1: unique title Gui
p_color = blue
p_x = 50
p_y = 80
p_size = 20
Gui, Add, Progress, % "x" ( p_x-1 ) " y" ( p_y-1 ) " w" ( p_size+2 ) " h" ( p_size+2 ) " background" p_color
|
|
|
|
31.10.12, 10:02
|
#7
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 14
Bedankt: 2
|
Neue Funktion entdeckt
So, eine weitere Funktion die ich vor einer ganzen weile entdeckt habe.
ich dachte ich schreib sie mal falls jemand danach sucht.
die funktion arbeitet mit opengl und ist daher sehr viel schneller als der blödsinn von oben^^
gui, -caption +AlwaysOnTop +LastFound +ToolWindow
gui, show, x50 y50 w400 h400
;SetPixelColor(x,y,x2,y2,Farbe) kann auch mit vars gearbeitet werden.
SetPixelColor(100,100,200,200,443355)
SetPixelColor(280,250,300,300,339977)
SetPixelColor(XE,YE,XZ,YZ,ColorRef)
{
BatchVar=%A_BatchLines%
SetBatchLines,-1
AA=%XE%
hDC := DllCall("GetDC", UInt, 0)
While,1
{
Avar := DllCall("gdi32.dll\SetPixel","Uint",hDC,"int",XE," int",YE,"int",ColorRef)
XE++
If(XE=XZ)
{
XE=%AA%
YE++
}
if (YE=YZ)
{
Break
}
}
SetBatchLines,%BatchVar%
}
x::
exitapp
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.
().
|