Jak vložím do nějakého programu v pascalu obrázek? Co mám zapsat do zdrojového kódu? Děkuji.
Fórum › Pascal
Vložení obrázku
Verze pascalu 7. Používám unit Images (http://mircosoft.mzf.cz/…d/IMAGES.PAS).
#5 Martin
Programátor se musí vyjadřovat naprosto přesně, jinak mu ostatní nebudou rozumět.
Jestli jsem správně pochopil, programuješ pod DOSem, kde pokud vím nejsou žádné "zdroje", které by překladač přidával do výsledného EXE, takže na to není žádný připravený příkaz, který bys napsal do zdrojového kódu.
Jestli nekdo znalejší nepřidá něco lepšího tak bych viděl asi dvě varianty: buď to k výslednému EXE přilepit a v programu číst daný počet bajtů od konce souboru (dost "prasácké" řešení), nebo pokud data nebudou příliš velká nadefinovat si je jako typovou konstantu (inicializovanou proměnnou) v nějaké jednotce. Binární data do zdrojového kódu vygenerovat extra prográmkem.
#9 Martin
Tak to bylo nejlepší ukázat to "zkoušení" - a taky napsat co a jak "nefunguje". Není to triviální záležitost a musel bych tu jednotku prozkoumat podrobněji. Na první pohled se mají pomocí LoadImageFromFile načíst data do paměti a pak pomocí _putimage, _puttimage a _putrtimage z jednotky VESA.TPU zobrazit.
Snad by bylo lepší kontaktovat autora té jednotky...
Autor se hlásí :-).
Přesně tak, díky. Martine, LoadImageFromFile2 jenom načte obrázek ze souboru do paměti, nezobrazuje. Jediné, co potřebuješ, je jedna proměnná typu pointer, pod kterou ti to automaticky alokuje paměť a uloží do ní ten obrázak, a dva wordy, ve kterých dostaneš jeho rozměry. Zobrazíš ho potom některou z těch uvedených procedur z Vesy nebo z Vga, ale na to samozřejmě musíš být v grafickém režimu - nic z toho ti jednotka Images nezajistí, to je právě záležitost Vesy (procedura _Setmode).
Jestli máš grafiku nastavenou správně, tak dva možné problémy, které mě napadají, jsou, že buď máš obrázek ve formátu, který neumím načíst (umím jenom BMP, PCX, CUT a ORF, navíc BMP nesmí mít víc než 256 barev), nebo je ten obrázek moc velký, takže na něj nestačí paměť (maximum je 64K pixelů). Obojí zjistíš kontrolou návratového kódu z LoadImage* - nula je v pořádku, 4 je varování ohledně palety a od 8 výš jsou závažné chyby, podrobné vysvětlivky máš ve zdrojáku jednotky. Mimochodem, paletu si taky musíš nastavit ručně - na to je jednotka Paleta2.
Jinak asi můžeme zbytek dořešit mailem, takovéhle rozbory nějakých specifických jednotek asi nejsou pro veřejnost moc velkým přínosem (pozn.: od soboty do středy asi budu bez přístupu k síti, takže neručím za včasné odpovědi).
Ještě k tomu vložení obrázku do EXE - i to by šlo. Soubor s obrázkem by se převedl na binární objekt utilitou BINOBJ.EXE a pomocí direktivy {$L ...} by se ve zdrojáku přilinkoval a pak by se k němu přistupovalo přes jakoby ukazatel na proceduru. Popsané je to v helpu, z hlavy si víc nepamatuju. Samozřejmě by pak nefungovaly ty moje načítací funkce, protože jsou stavěné jenom na soubory.
Moje stránka.
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
Vložení obrázku do obbrázku — založil MpPozor
Vložení obrázku na Buton — založil paul27
Vložení obrázku v gui — založil Noneus
Vlozeni BMP obrazku do souboru na urcitou pozici — založil Mutagen
Databáze více jak 255 znaků a vložení obrázku — založil Fil
Moderátoři diskuze