Jak udělat bitový OR mezi dvěma BufferedImage? – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Jak udělat bitový OR mezi dvěma BufferedImage? – Java – Fórum – Programujte.comJak udělat bitový OR mezi dvěma BufferedImage? – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Omikron
~ Anonymní uživatel
4 příspěvky
2. 5. 2012   #1
-
0
-

Mám následující problém:

Píšu v Javě emulátor 8 bitového počítače, konkrétně IQ-151. Tenhle stroj měl textovou a grafickou obrazovku, obě byly hardwarově ORovány  do jednoho video výstupu.

Mám dvě jednobitové BufferedImage

BufferedImage(512, 512, BufferedImage.TYPE_BYTE_BINARY)

otázka zní: Jak mezi nimi udělat bitový OR a výsledek zobrazit do nějakého JPanelu?

Nahlásit jako SPAM
IP: 90.177.136.–
Reklama
Reklama
sleepy0
Stálý člen
2. 5. 2012   #2
-
0
-

Co takto z bufferedImage-u vytiahnut pole bitov resp intov nasledovne:

BufferedImage text = ....;
BufferedImage graf = ....;
int size = text.getWidth()*text.getHeight()
int[] textAr = new int[size];
int[] grafAr = new int[size];//Predpokladam ze obe obrazovky maju rovnaku velkost,
// trba este toto vyriesit
//Tu ti to vypluje vystup ak je na danom pixely 0 -> 0 ak 1 -> 0xffffff mozno aj
//nejaka alfa ale ta je nezauimava bude rovanka
graf.getRGB(0,0,graf.getWidth(),graf.getHeight(),grafAr,0,graf.getWidth());
text.getRGB(0,0,text.getWidth(),text.getHeight(),textAr,0,text.getWidth());
int[] outAr = new int[size];
for(int n = 0; n<size; n++) {
	outAr[n] = textAr[n]|grafAr[]//Bitovy or
	// 0x0 | 0x0 -> 0x0
	// 0xffffff | 0x0 -> 0xffffff atd...
}
BufferedImage output = new BufferedImage(graf.getWidth(),
		graf.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
// A obrazok je vytvoreny

No a teraz povedzeme ze si si vytvoril objekt JPanel:

public void drawImageToPanel(BufferedImage output, JPanel canv){
	Graphics g = canv.getGraphics();
	g.drawImage(output, 0,0, canv.getWidth(), canv.getHeight(), canv/*null*/);
}
Nahlásit jako SPAM
IP: 158.195.195.–
Omikron
~ Anonymní uživatel
4 příspěvky
2. 5. 2012   #3
-
0
-

a jak se dostane outAr[] do toho BufferedImage output, nechybí tam něco?

Nahlásit jako SPAM
IP: 78.45.156.–
sleepy0
Stálý člen
3. 5. 2012   #4
-
0
-

jop mas pravdu, tam treba pridat este: 

output.setRGB(0,0,output.getWidth(),output.getHeight(),grafAr,0,output.getWidth());
Nahlásit jako SPAM
IP: 158.195.195.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

Proměná, mezi dvěma událostmi — založil Petr Sýkora

Rozdíl mezi dvěma zápisy — založil Tomáš

Dny mezi dvema daty — založil kejta

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý