tryb 13h, (Wczytywanie pliku bmp)

0

Czy da się w jakiś sposób przerobić kod źródłowy a języku C znajdujący się poniżej tak aby dana bitmapa wyświetlała się od razu, chodzi mi szczególnie o to aby jej dana nazwa była umieszczona Od razu w kodzie a nie czebyło jej wpisywać po skompilowaniu programu.

Kod źródłowy:

#include <stdio.h>
#include <dos.h>

void introduce(void); // Wprowadzenie nazw plikow, opis programu.
void initgfxmode(int); // Inicjacja podanego trybu graficznego.
void loadBMP(char *); // Wyswietlanie obrazu z pliku BMP.

FILE *filein; // Pliki BMP wejsciowy i wyjsciowy.
char *patchin[30]; // Sciezki dostepu do w/w plikow.

main(void) {
introduce(); // Wprowadzenie, podanie nazw plikow.

initgfxmode(0X13);					// Inicjacja trybu 13H [320x200x256].
loadBMP(patchin);						// Wyswietlenie obrazu wejsciowego BMP.
getch();


initgfxmode(0X3);						// Powrot do trybu 3H (tekstowego).

}

void introduce(void) {

scanf("%s",&patchin);            // Sciezka do pliku BMP wejsciowego.

}

void initgfxmode(int mode) { // Inicjacja trybu graficznego 'mode'.
_AX = mode;
geninterrupt(0X10);
}

void loadBMP(char *patch) { // Wyswietla na ekranie obraz z pliku BMP.
int i, j;
unsigned char red, green, blue;

filein = fopen(patch, "rb");	// Otwarcie pliku "binarnego do czytania".
fseek(filein, 54, SEEK_SET);	// Przeskok naglowka pliku BMP.

for (i=0; i<=255; i++) {		// Odczytanie z pliku i ustawienie palety
	blue  = fgetc(filein);		// kolorow wykorzystywanej przez obraz.
	green = fgetc(filein);		// Dokladny opis sposobu zapisu palety
	red   = fgetc(filein);		// kolorow w pliku BMP znajduje sie w
	fgetc(filein);					// sprawozdaniu zalaczonym do programu.
	outp(0X3C8, i);
	outp(0X3C9, red 	/ 4);
	outp(0X3C9, green / 4);
	outp(0X3C9, blue 	/ 4);
}

for (j=199; j>=0; j--)        // Wyswietlenie obrazu na ekranie
	for (i=0; i<=319; i++)
		poke(0XA000, j*320+i, fgetc(filein));  // Zapalenie punktu (i, j)
															// kolorem pobranym z pliku.

}

0

zmien
char patchin[30];
na char patchin[] = "plik.bmp";
i wywal funkcje introduce

0

To:
scanf("%s",&patchin); // Sciezka do pliku BMP wejsciowego.
Zamien na:
strcpy(patchin, "sciezka do pliku");

A jak mam byc szczery, to nie wiem jak ten kod moze dzialac... * przed patchin jest nie potrzebna. & przed patchin w scanf rowniez...

/* aj, cepa ma lepsze polaczenie do 4p :P */

1 użytkowników online, w tym zalogowanych: 0, gości: 1