Čtení pole dat ze souboru(obrázku). – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Čtení pole dat ze souboru(obrázku). – C / C++ – Fórum – Programujte.comČtení pole dat ze souboru(obrázku). – C / C++ – Fórum – Programujte.com

 

MiCizek0
Stálý člen
20. 12. 2013   #1
-
0
-

Ahoj potřeboval bych číst data z bitmapovýho nebo jiného bezestrátového formátu nebo najít nějaký jednoduchý editor, který ukládá data do raw formátu.

Nahlásit jako SPAM
IP: 89.24.203.–
Radek Chalupa
~ Redaktor
+1
Super člen
20. 12. 2013   #2
-
0
-

#1 MiCizek
Ve windows snadno pomocí GDI+, konrétně třídy Bitmap, BitmapData, plus samozřejmě inicializace knihovny atd.

Zde si můžeš stáhnou doprovodné příklady k mé knize, kde je to ukázané v praxi: http://www.radekchalupa.cz/knihy/gdiplus/

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
MiCizek0
Stálý člen
20. 12. 2013   #3
-
0
-
Nahlásit jako SPAM
IP: 89.24.203.–
MiCizek0
Stálý člen
20. 12. 2013   #4
-
0
-

Nebo by se mi hodil nějaký jednoduchý grafický editor v raw obrázků.

edit:

Mám nějaký dvojrozměrný pole dat a potřebuji je nějak hromadně upravit a pak je zpracovat v programu.

Nahlásit jako SPAM
IP: 89.24.203.–
MiCizek0
Stálý člen
29. 12. 2013   #5
-
0
-

Ahoj metoda getPixel vrací 2, což je InvalidParametr. Nevíte někdo, co s tím? 

BYTE number;
	Gdiplus::Color color;
	Gdiplus::Bitmap bitmap(L"C:/Users/VereWolf/Desktop/World_Space_Gen/WorldSpaceGenV2/World_Space_Gen/Debug/gen.jpg");
	for (INT i = 0; i < CELLS; i++)
	{
		for (INT j = 0; j < CELLS; j++)
		{
			bitmap.GetPixel(1,1,&color);
			number = color.GetB();
			pixels.at(i*CELLSCALE).at(j*CELLSCALE).pixelType = color.GetB();
		}
	}
Nahlásit jako SPAM
IP: 89.24.203.–
Radek Chalupa
~ Redaktor
+1
Super člen
29. 12. 2013   #6
-
0
-

#5 MiCizek
Za prvé podle těch lomítek v cestě (místo / by mělo být \\) se obávám že se bitmapa vůbec nenačetla.

Za druhé procházet data bitmapy pomocí get/setpixel je způsob jak využít PC pro vytápění místnosti:-). Jak už jsem napsal výše, na tohle existuje třída BitmapData. Ve výše zmíněných doprovodných příkladech ke knize je např. ukázka kódu pro převod na stupně šedé: 

if (!this->bitmap)
	return 0;
BitmapData bData;
this->bitmap->LockBits(&Rect(0, 0,
	bitmap->GetWidth(), bitmap->GetHeight()),
	ImageLockModeWrite | ImageLockModeRead,
	PixelFormat24bppRGB, &bData);
BYTE* pData = (BYTE*)bData.Scan0;
BYTE* pKonec = (BYTE*)((BYTE*)
	bData.Scan0 + (bData.Height * bData.Width * 3));
BYTE b;
while (pData < pKonec)
{
	b = ((11 * (*(pData+2)) + 59 *
		(*(pData+1))+ 30 * (*(pData)))) / 100;
	*(pData) = b;
	*(pData + 1) = b;
	*(pData + 2) = b;
	pData += 3;
}
bitmap->UnlockBits(&bData);

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
MiCizek0
Stálý člen
29. 12. 2013   #7
-
0
-

Stále mi to nechce načíst obrázek :-( 


	Gdiplus::Bitmap *bitmap = new Gdiplus::Bitmap(L"C:\\Users\\VereWolf\\Desktop\\World_Space_Gen\\WorldSpaceGenV2\\Word_Space_Gen\\Debug\\gen.jpg");
	if(!bitmap)
		return 0;
Nahlásit jako SPAM
IP: 89.24.203.–
Radek Chalupa
~ Redaktor
+1
Super člen
29. 12. 2013   #8
-
0
-

#7 MiCizek
Volal jsi někde před tím GdiplusStartup?

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
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, 18 hostů

Moderátoři diskuze

 

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