Skocz do zawartości

[Pascal] BMP


Adamg1996

Rekomendowane odpowiedzi

Cześć,

 

Mam pytanie w związku z odczytywaniem grafik w formacie *.bmp,

 

Jak odczytać obrazek o dowolnych rozmiarach ( 256 kolory ) ? I jak go umieścić w dowolnym miejscu ekranu ? I czy moglibyście przerobić kodzik ? xD

 

Oczywiście tryb VGA 13h...

 

Kod który prosiłbym przekształcić ( ponieważ jest to jedyny działający na moim TMTPascalu kod odczytujący bmp) i wolałbym jak najmniej assemblera(ponieważ mam z nim same problemy)...

 

procedure BMP(Sciezka : string);

 var Paleta : array [0..255,0..3] of Byte;   { Tu zapiszemy nasze kolorki }

     Plik          : file;                   { Zmienna plikowa            }

     i             : Byte;                   { Zmienna pomocnicza         }

 begin

   Assign(Plik,Sciezka);                     { Kojazymy zmienna z plikiem }

   Reset(Plik,1);                            { Otwieramy plik             }

   Seek(Plik,54);                            { Pomijamy naglowek pliku    }

   BlockRead(Plik,Paleta,SizeOf(Paleta));    { Wczytujemy palete kolorow  }

   for i:=0 to 255 do

     begin

       port[$3c8]:=i;

       port[$3c9]:=Paleta[i,2] div 4;        { Ustawiamy skladowa Red     }

       port[$3c9]:=Paleta[i,1] div 4;        { Ustawiamy skladowa Green   }

       port[$3c9]:=Paleta[i,0] div 4;         { Ustawiamy skladowa Blue    }

     end;

   for i:=199 downto 0 do                    { Wczytujemy linie na ekran  }

     BlockRead(Plik,Mem[$A000:i*320],320);   { blokami po 320 pixeli      }

   Close(Plik);                               { Zamykamy plik              }

 end;

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...