Změna barvy v pictureboxu   zodpovězená otázka

VB.NET, WinForms

Mám v pictureboxu načtenej obrázek. Na obrázku je několik bílých a šedých míst (vím přednou barevnost). Existuje jednoduchý způsob, jak tyto místa přebarvit.

Zkoušel jsem číst jednotlivé pixely a při nalezení bílé barvy vykreslit tento pixel červeně, ale nějak se mi nedaří.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

1) Projít všechny pixely obrázku a barvu nalézt+nahradit pomocí GetPixel+SetPixel. Extrémě pomalé.

2) Použít mnohonásobně rychlejší, ale složitější manipulaci s obrázkem pomocí ukazatelů:

http://www.codeproject.com/KB/GDI-plus/c...

Místo operací s ukazateli se ve VB používá Marshal:

http://www.bobpowell.net/lockingbits.htm

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Bitmap ZmenBarvu(Bitmap obr, int x, int y, Color barva)
{
  obr.SetPixel(x, y, barva);
  return obr;
}

A použití:

Bitmap img = pictureBox1.Image;

A do nějaky udalosti dej:

ZmenBarvu(img, 0,0);

Ty nuly nahrad souradnicema...

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback