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.
Fórum › C / C++
Čtení pole dat ze souboru(obrázku).
#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
Zkouším něco v konzoli, ale našel jsem jenom tuhle tu knihovnu, ale při kompilaci mi to háže chybu.
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();
}
}
#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
#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
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Cteni dat ze souboru — založil honza
čtení dat z txt souboru rada sscanf — založil lorDoom
ASP.NET - C#: Čtení dat ze souboru XML — založil this.name
Čtení z binárního souboru a následný výpis dat — založil avalagne
Python:cteni souboru do pole — založil kaja09
Moderátoři diskuze