.[ ČeskéHry.cz ].
Farba pixelu

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 13. březen 2008, 20:17:06    Předmět: Farba pixelu Odpovědět s citátem

Zdar,
da sa nejako v .NET vo Windows Forms zistit farba pixelu ked kliknem mysou na obrazovku na nejake miesto ???
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 13. březen 2008, 22:23:20    Předmět: Odpovědět s citátem

No přes GetPixel nad bitmapou (pokud nekreslíš rovnou do bitmapy a ani jí nezískáš z komponenty, kterou chceš (Form), tak si můžeš nechat sejmout do bitmapy celou obrazovku nebo aktivní okno a nad tím si pak pracovat)
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 13. březen 2008, 22:58:43    Předmět: Odpovědět s citátem

s Bitmapou sa mi to nezda prilis efektivne, rychlejsie by to bolo keby som volal Win32 API (GetPixel(), GetWindowDC()) ale kedze to robim na WindowsMobile 5.0 mam problem importnut dll:

[DllImportAttribute ("Coredll") CharSet = CharSet.Auto]
private static extern int GetPixel(int hdc, int xPos,int yPos);
mi nejde. Neviete niekto ako vyuzit unmanaged kod v C# pod Windows Mobile 5.0 ???
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 13. březen 2008, 23:18:01    Předmět: Odpovědět s citátem

Pokud si to dobre pamatuju, tak minimalne v .NET CF 1.1 michat managed a unmanaged kod nejde (resp. nelze volat funkce z externich dll). Nebo se pletu?
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 13. březen 2008, 23:26:12    Předmět: Odpovědět s citátem

Pokud bys nechtel pouzivat unmanaged kod, tak by neco melo jit dosahnout pres Graphics.FromHdc, resp. Graphics.FromHwnd. Ale obavam se, ze to v CF taky nejak rozumne nakombinovat nejde.
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 13. březen 2008, 23:27:46    Předmět: Odpovědět s citátem

OndraSej: Pletes, ja i v .NET CF 1.x externi volani pouzivam (at uz coredll nebo system32 podle platformy, P/Invoke deklaruju pro obe)

KuboSVK: Tvoje otazka se tykala .NET a WinForms, a kdyz ti ji v ramci .NET zodpovim, tak mi vynadas, ze to nebude efektivni a chces najednou vyuzit unmanaged kod, to jsi nemel o .NET nic psat Wink

Jinak na sejmuti obrazovky do bitmapy pres P/Invoke WinApi ti muzu poslat kod zitra (ted sedim u NB a nechci uz hlavni komp zapinat), vyuzivala to moje .NET aplikace provadejici OCR hry Letteria a hrajici misto cloveka Wink
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 13. březen 2008, 23:37:08    Předmět: Odpovědět s citátem

Mem napsal:
OndraSej: Pletes, ja i v .NET CF 1.x externi volani pouzivam (at uz coredll nebo system32 podle platformy, P/Invoke deklaruju pro obe)

KuboSVK: Tvoje otazka se tykala .NET a WinForms, a kdyz ti ji v ramci .NET zodpovim, tak mi vynadas, ze to nebude efektivni a chces najednou vyuzit unmanaged kod, to jsi nemel o .NET nic psat Wink

Jinak na sejmuti obrazovky do bitmapy pres P/Invoke WinApi ti muzu poslat kod zitra (ted sedim u NB a nechci uz hlavni komp zapinat), vyuzivala to moje .NET aplikace provadejici OCR hry Letteria a hrajici misto cloveka Wink


JJ, samozrejme ze mas pravdu ze to v managed kode bude vzdy pomalsie, mne slo skor o to, ze je to zbutocne viac kodu ked sa daju pouzit funkcie z win API
Mohol bu si mi potom poslat ukazky ako volas externe funckie z coredll a pod., nech vidim ako to importnut + to savnutie obrazovky
P.S. Ja som ti nevynadal, to je len konstruktivna debata Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 14. březen 2008, 10:42:22    Předmět: Odpovědět s citátem

Nejdřív ke slíbenému screen capturingu do bitmapy, já používám tento kód, ale na PC, takže neručím za to, že to pojede i na Pocket PC, ale mělo by to být standardní GDI a ne GDI+, takže uvidíš (maximálně to napíše invalid method Wink, dej pak vědět)

Pro P/Invoke, který chci využít na platformě PC i PPC (tj. jedno exe, které spustíš bez problémů na obou) používám deklarace typu:
kód:
[DllImport("coredll.dll", EntryPoint = "PlaySound")]
public static extern int PlaySoundPDA(byte[] szSound, IntPtr hModule, int flags);

[DllImport("winmm.dll", EntryPoint = "PlaySound")]
public static extern int PlaySoundPC(byte[] szSound, IntPtr hModule, int flags);

a pak jen v nějaké svojí funkci PlaySound dle proměnné System.Environment.OSVersion.Platform == PlatformID.WinCE zjišťuju, kterou verzi zavolat.

Jinak už hotové a funkční hlavičky pro P/Invoke najdeš na webu http://pinvoke.net/
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 18. březen 2008, 19:05:23    Předmět: Odpovědět s citátem

Mem napsal:
Nejdřív ke slíbenému screen capturingu do bitmapy, já používám tento kód, ale na PC, takže neručím za to, že to pojede i na Pocket PC, ale mělo by to být standardní GDI a ne GDI+, takže uvidíš (maximálně to napíše invalid method Wink, dej pak vědět)

Pro P/Invoke, který chci využít na platformě PC i PPC (tj. jedno exe, které spustíš bez problémů na obou) používám deklarace typu:
kód:
[DllImport("coredll.dll", EntryPoint = "PlaySound")]
public static extern int PlaySoundPDA(byte[] szSound, IntPtr hModule, int flags);

[DllImport("winmm.dll", EntryPoint = "PlaySound")]
public static extern int PlaySoundPC(byte[] szSound, IntPtr hModule, int flags);

a pak jen v nějaké svojí funkci PlaySound dle proměnné System.Environment.OSVersion.Platform == PlatformID.WinCE zjišťuju, kterou verzi zavolat.

Jinak už hotové a funkční hlavičky pro P/Invoke najdeš na webu http://pinvoke.net/


jj, dik, ten screen capturing mi pomohol, trosku som ho pozmenil a vyzera, ze to frci Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> .NET Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna