Vložení obrázku – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vložení obrázku – Pascal – Fórum – Programujte.comVložení obrázku – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Martin
~ Anonymní uživatel
1380 příspěvků
26. 4. 2012   #1
-
0
-

Jak vložím do nějakého programu v pascalu obrázek? Co mám zapsat do zdrojového kódu? Děkuji.

Nahlásit jako SPAM
IP: 90.181.83.–
Reklama
Reklama
JoDiK
~ Anonymní uživatel
981 příspěvků
26. 4. 2012   #2
-
0
-

#1 Martin
Podle formulace dotazu odpověď zní - nijak.

Kdybys aspoň napsal v jaké verzi Pascalu, nebo do jakého režimu je přeložený ten program...

Nahlásit jako SPAM
IP: 88.103.233.–
Martin
~ Anonymní uživatel
1380 příspěvků
26. 4. 2012   #3
-
0
-
Nahlásit jako SPAM
IP: 90.181.83.–
JoDiK
~ Anonymní uživatel
981 příspěvků
26. 4. 2012   #4
-
0
-

#3 Martin

Co si přesně představuješ pod "Jak vložím do nějakého programu v pascalu obrázek"???

Jako aby byl součástí exe souboru a ne v samostatném souboru?

Nahlásit jako SPAM
IP: 88.103.233.–
Martin
~ Anonymní uživatel
1380 příspěvků
26. 4. 2012   #5
-
0
-

Přesně tak. Promiňte, jestli se nevyjadřuji přesně.

Nahlásit jako SPAM
IP: 90.181.83.–
JoDiK
~ Anonymní uživatel
981 příspěvků
26. 4. 2012   #6
-
0
-

#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.

Nahlásit jako SPAM
IP: 88.103.233.–
Martin
~ Anonymní uživatel
1380 příspěvků
26. 4. 2012   #7
-
0
-

Vlastně to je jedno, klidně může být uložen jako samostatný soubor a ve zdrojovém kódu na něj může být uvedena adresa. Hlavní je, aby se po spuštění programu zobrazil.

Nahlásit jako SPAM
IP: 90.181.83.–
JoDiK
~ Anonymní uživatel
981 příspěvků
26. 4. 2012   #8
-
0
-

#7 Martin
Tak teď už zase nerozumím, s čím chceš poradit. Vždyť v té jednotce je to všechno česky okomentované... To to jako mám za tebe přečíst a pak ti říct, jak pomocí té jednotky zobrazit obrázek uložený v souboru?

Nahlásit jako SPAM
IP: 88.103.233.–
Martin
~ Anonymní uživatel
1380 příspěvků
26. 4. 2012   #9
-
0
-

Byl bych Vám vděčný, protože já už to podle toho zkouším několik hodin a pořád mi to nefunguje.

Nahlásit jako SPAM
IP: 90.181.83.–
JoDiK
~ Anonymní uživatel
981 příspěvků
26. 4. 2012   #10
-
0
-

#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...

Nahlásit jako SPAM
IP: 88.103.233.–
Mircosoft+1
Věrný člen
27. 4. 2012   #11
-
0
-

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.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
JoDiK
~ Anonymní uživatel
981 příspěvků
27. 4. 2012   #12
-
0
-

#11 Mircosoft
Aho, i já děkuju za připomenutí, na binobj jsem zapomněl... No je fakt, že jsem to použil asi jen jednou...

Nahlásit jako SPAM
IP: 88.103.233.–
Martin
~ Anonymní uživatel
1380 příspěvků
27. 4. 2012   #13
-
0
-

Moc děkuji.

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

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ý