Jak zrobić okienko do zapisywania bitmapy w ilości kolorów zależnie od wybranej w okienku zapisu opcji?
10:13Wed, 3 January 2007 Połóż na formularzu przycisk (TButton) i komponent wyświetlający okienko do zapisywania obrazów (TSavePictureDialog). Zaznacz komponent SavePictureDialog1 i w Inspektorze Obiektów wypełnij pole Filter takim ciągiem:
Plik BMP (monochromatyczny)|*.bmp|Plik BMP (kolorowy)|*.bmp
Kilknij dwukrtonie na przycisk. Delphi powinien wygenerować procedurę zdarzeniową którą uzupełniasz następująco:
var
bmp : TBitmap;
begin
// Tworzymy bitmapę
bmp := TBitmap.Create;
// Ustalamy rozmiar bitmapy
bmp.Width := 640;
bmp.Height := 480;
// Rysujemy elipsę
bmp.Canvas.Ellipse(100,100,150,150);
// Rysujemy bitmapę na formularzu
Form1.Canvas.Draw(0,0,bmp);
// Otwieranie okienka SavePictureDialog
if SavePictureDialog1.Execute Then
begin
// USTALANIE ILOŚCI BITÓW NA PIKSEL (FORMATU KODOWANIA BARW)
// ZALEŻNIE OD WYBRANEJ OPCJI W OKNIE SavePictureDialog
case SavePictureDialog1.FilterIndex of
1 : bmp.PixelFormat := pf1bit; // konwersja do obrazu czarno-białego (monochromatycznego)
2 : bmp.PixelFormat := pf32bit; // konwersja do obrazu kolorowego
end;
// domyslny format to bmp.PixelFormat := pf24bit;
bmp.SaveToFile(SavePictureDialog1.FileName+'.bmp'); // Zapis do pliku
end;
// Zwalnianie pamięci przydzielonej bitmapie
FreeAndNil(bmp);
Powyższy kod wygeneruje obraz przedstawiający małe kółko i zapisze go do pliku, konwertując go uprzednio do odpowiedniej (wybranej w oknie zapisu) ilości kolorów.
Póki co brak pytań w FAQ.Skomentuj
Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.
Komentarze czytelników
Nie ma jeszcze żadnych komentarzy.