BMP, JPEG, TIFF, GIF – istnieje wiele formatów grafiki rastrowej.
1. BMP
Przede wszystkim powinieneś wiedzieć, że BMP jest starym formatem obrazu i nie jest tak popularny wśród użytkowników, są zapisywane tylko obrazy bitmapowe w tym formacie, nie obsługuje wektorowych.
Rozmiar .bmp plików może się różnić w zależności od jakości obrazów. Pomimo faktu, że użytkownicy uważają format BMP za przestarzały, jest on aktywnie używany w wielu sferach. Na przykład wszystkie interfejsy systemu Windows były oparte na tym formacie. Dlaczego dokładnie BMP? Ponieważ jest on wygodny w użyciu podczas tworzenia obrazów, nie tracą one na jakości po edycji. BMP jest często używany w Photoshopie podczas edycji obrazów, format ten jest również łatwy do przesłania do sieci społecznościowych i różnych stron internetowych.
Oczywiście lepiej jest używać nowoczesnych formatów graficznych, ponieważ są one wielowarstwowe i można je przesłać na dowolną stronę bez problemów technicznych. Jednocześnie istnieje wiele opcji edycji tych obrazów i mają one mniejszy rozmiar pliku.
2. JPEG
JPEG jest powszechnie używanym formatem do przechowywania obrazów. Ma dobrą jakość kompresji do oglądania zdjęć. Format ten ma wiele zalet, ponieważ użytkownik ma kilka możliwości, takich jak: zmiana jakości i rozmiaru pliku, łatwe otwieranie obrazu w dowolnej przeglądarce, edycję tego pliku w dowolnym edytorze graficznym, a także mały rozmiar, który nie zajmuje dużo miejsca na komputerach i innych urządzeniach do przechowywania danych. Jeśli nie skompresujesz dużo, jakość obrazu zostanie całkowicie zachowana.
Ten format ma też kilka wad:
a) Nie ma przezroczystości w przeciwieństwie, na przykład do PNG.
b) Jeśli skompresujesz (zmienisz rozmiar) obraz JPG, jego zniekształcenia (lub całkowita strata) będą zauważalne.
c) Nie zaleca się edytowania przywróconego pliku JPG po kompresji, ponieważ może on stracić jakość.
Pomimo tych wad, format ten jest uważany za najbardziej popularny wśród użytkowników.
3. TIFF
Jest to dobrze znany format rastrowy, który obsługuje prawie wszystkie znane przestrzenie kolorów. Obrazy bez kompresji stały się niemal standardem w branży poligraficznej. Istnieją różne algorytmy kompresji, dzięki którym plik zachowuje się nawet bez strat. Plik TIFF może zawierać obraz przechowywany w modelach CMYK, RGB, Lab w trybie kolorów indeksowanych, a także w skali szarości. Pozwala to na wykorzystanie tego formatu do przechowywania różnych obrazów, wykorzystywanych zarówno do przygotowania grafiki internetowej, jak i typografii. Oprócz samego obrazu, TIFF zawiera kanały przezroczystości, które umożliwiają zapisywanie przezroczystych obszarów obrazu lub podświetlanie obiektów między sesjami roboczymi.
Kolejną cechą formatu TIFF jest możliwość zapisania wielu obrazów, które mają własne zestawy atrybutów i właściwości (tagów) w jednym pliku. To sprawia, że TIFF jest podobny do GIF, choć nie ma możliwości tworzenia animowanych obrazów.
Popularność tego formatu ułatwia przenoszenie obrazów między programami i platformami sprzętowymi.
4. GIF
Pliki GIF mają niewielki rozmiar i obsługują proste animacje, czyli zmianę klatek w jednym pliku.
Format GIF jest szeroko rozpowszechniony w dziedzinie tworzenia banerów, a także graficznej powłoki treści wideo. Główną zaletą jest kompresja danych bez wyraźnej utraty jakości na głębokości do 256 kolorów. Animowane obrazy składają się z wielu statycznych klatek, a także danych o wymaganym czasie demonstracji ramki.
Użytkownicy używają formatu GIF w wielu dziedzinach. Na przykład, w projektowanie stron internetowych, projektowaniu graficznym, podczas pisania artykułów lub książek, w sieciach społecznościowych, w postaci banerów reklamowych i innych.
Korzystając z tego formatu, można zmniejszyć rozmiar obrazu, co pozytywnie wpływa na szybkość ładowania stron internetowych.
5. SVG
Ten format jest formatem wektorowym. Krótko mówiąc, przy jego pomocy powstają strony internetowe. SVG to plik tekstowy XML z tagami.
Ten format nie traci jakości obrazu podczas skalowania i przycinania. Aby uzyskać więcej informacji na temat zalet i wad formatu SVG, a także o zapisaniu go z Delphi, przeczytaj tutaj.
Teraz wiemy, kiedy i jakiego formatu lepiej jest użyć do odpowiednich działań.
Tak więc, jak możemy eksportować do tych formatów z aplikacji Delphi / Lazarus?
A bardzo łatwo! Oczywiście nie jest to naszym głównym celem, istnieje wiele opcji. Interesują nas możliwości FastReport VCL, ponieważ za jego pomocą możemy przygotować dokument, plakat, baner – na szczęście projektant wizualny zawiera proste figury graficzne i wiele obiektów z efektami. Możesz natychmiast zobaczyć, w razie potrzeby, zmienić / edytować dokument przed wyeksportowaniem go do żądanego formatu obrazu.
Więc, jak stworzyć / zapisać / wyeksportować do BMP lub GIF z Delphi?
Najpierw musimy stworzyć dokument. Prosty lub złożony – nie ma różnicy.
Teraz, po tym, jak stworzyliśmy obiekt, który chcemy przekształcić w ilustrację, uruchom i zobacz.
W oknie podglądu wybieramy format zapisywania raportu.
Na przykład musimy wyeksportować do obrazu BMP. Zaznacz i kliknij.
Pojawi się okno ustawień eksportu. Konfigurowanie i zapisywanie.
Porozmawiajmy trochę o ustawieniach.
Możemy zapisać wszystkie strony, bieżącą stronę lub zakres.
Oto zrzuty ekranu, aby porównać ustawienia różnych formatów: (TIFF, JPEG,GIF)
W niektórych przypadkach niektóre ustawienia nie są dostępne (różnice formatów).
Monochromatyczne – obrazy w odcieniach czerni;
Przycinanie stron — czy strony są przycinane;
Jakość JPEG – ustawienie jakości obiektu graficznego;
Rozdzielczość (dpi) – kropki na cal;
Otwórz po wyeksportowaniu – otwarcie dokumentu automatycznie po wyeksportowaniu. Można wskazać, gdzie zapisać plik (w pamięci lokalnej, wysłać jako e-mail, przekazać do FTP lub w chmurze).
Cóż, teraz dowiedzieliśmy się, jak łatwo zapisać raport w formatach graficznych z Delphi / C ++Builder / Lazarus z okna podglądu.
Ale jak możemy zapisać BPM / JPEG / TIFF / GIF bezpośrednio z kodu Delphi / C + + Builder / Lazarus?
Właśnie tak!
Eksport do BMP | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
procedure TForm1.Button1Click(Sender: TObject); begin {Generowanie raportu. Raport musi zostać wygenerowany przed wyeksportem} frxReport1.PrepareReport(); {Ustaw zakres stron do wyeksportowania. Domyślnie eksportowane są wszystkie strony wygenerowanego raportu} frxBMPExport1.PageNumbers := '2-3'; {Ustaw, czy chcesz wyeksportować każdą stronę do osobnego pliku.} {.N zostanie dodany do nazwy pliku, gdzie N jest numerem seryjnym strony} frxBMPExport1.SeparateFiles := True; {Ustaw, czy chcesz wyeksportować do obrazu monochromatycznyego} frxBMPExport1.Monochrome := False; {Ustawianie, czy mają być przycinane puste krawędzie (marginesy strony)} frxBMPExport1.CropImages := False; {Ustaw rozdzielczość DPI} frxBMPExport1.Resolution := 96; {Ustaw, czy plik wynikowy ma być otwarty po wyeksportowaniu} frxBMPExport1.OpenAfterExport := False; {Ustaw, czy chcesz wyświetlić postęp eksportu (pokaż, która strona jest obecnie eksportowana)} frxBMPExport1.ShowProgress := False; {Ustawianie, czy ma być wyświetlane okno dialogowe filtru eksportu} frxBMPExport1.ShowDialog := False; {Ustaw nazwę wynikowego pliku.} {Należy pamiętać, że jeśli nazwa pliku nie zostanie ustawiona i wyłączysz okno dialogowe filtru eksportu,} {Okno dialogowe wyboru nazwy pliku będzie nadal wyświetlane} frxBMPExport1.FileName := 'C:\Output\test.bmp'; {Eksportowanie raportu} frxReport1.Export(frxBMPExport1); end; |
Eksport do formatu JPEG | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
procedure TForm1.Button2Click(Sender: TObject); begin {Generowanie raportu. Raport musi zostać wygenerowany przed wyeksportem} frxReport1.PrepareReport(); {Ustaw zakres stron do wyeksportowania. Domyślnie eksportowane są wszystkie strony wygenerowanego raportu} frxJPEGExport1.PageNumbers := '2-3'; {Ustaw, czy chcesz wyeksportować każdą stronę do osobnego pliku.} {. N zostanie dodany do nazwy pliku, gdzie N jest numerem seryjnym strony} frxJPEGExport1.SeparateFiles := True; {Ustaw, czy chcesz wyeksportować do obrazu monochromatycznyego} frxJPEGExport1.Monochrome := False; {Ustawianie, czy mają być przycinane puste krawędzie (marginesy strony)} frxJPEGExport1.CropImages := False; {Ustaw jakość jpeg} frxJPEGExport1.JPEGQuality := 90; {Ustaw rozdzielczość DPI} frxJPEGExport1.Resolution := 96; {Ustaw, czy plik wynikowy ma być otwarty po wyeksportowaniu} frxJPEGExport1.OpenAfterExport := False; {Ustaw, czy chcesz wyświetlić postęp eksportu (pokaż, która strona jest obecnie eksportowana)} frxJPEGExport1.ShowProgress := False; {Ustawianie, czy ma być wyświetlane okno dialogowe filtru eksportu} frxJPEGExport1.ShowDialog := False; {Ustaw nazwę wynikowego pliku.} {Należy pamiętać, że jeśli nazwa pliku nie zostanie ustawiona i wyłączysz okno dialogowe filtru eksportu,} {Okno dialogowe wyboru nazwy pliku będzie nadal wyświetlane} frxJPEGExport1.FileName := 'C:\Output\test.jpg'; {Eksportowanie raportu} frxReport1.Export(frxJPEGExport1); end; |
Eksport do TIFF | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
procedure TForm1.Button3Click(Sender: TObject); begin {Generowanie raportu. Raport musi zostać wygenerowany przed wyeksportem} frxReport1.PrepareReport(); {Ustaw zakres stron do wyeksportowania. Domyślnie eksportowane są wszystkie strony wygenerowanego raportu} frxTIFFExport1.PageNumbers := '2-3'; {Ustaw, czy chcesz wyeksportować każdą stronę do osobnego pliku.} {. N zostanie dodany do nazwy pliku, gdzie N jest numerem seryjnym strony} frxTIFFExport1.SeparateFiles := True; {Ustaw, czy chcesz wyeksportować do obrazu monochromatycznyego} frxTIFFExport1.Monochrome := False; {Ustawianie, czy mają być przycinane puste krawędzie (marginesy strony)} frxTIFFExport1.CropImages := False; {Ustaw rozdzielczość DPI} frxTIFFExport1.Resolution := 96; {Ustaw, czy plik wynikowy ma być otwarty po wyeksportowaniu} frxTIFFExport1.OpenAfterExport := False; {Ustaw, czy chcesz wyświetlić postęp eksportu (pokaż, która strona jest obecnie eksportowana)} frxTIFFExport1.ShowProgress := False; {Ustawianie, czy ma być wyświetlane okno dialogowe filtru eksportu} frxTIFFExport1.ShowDialog := False; {Ustaw nazwę wynikowego pliku.} {Należy pamiętać, że jeśli nazwa pliku nie zostanie ustawiona i wyłączysz okno dialogowe filtru eksportu,} {Okno dialogowe wyboru nazwy pliku będzie nadal wyświetlane} frxTIFFExport1.FileName := 'C:\Output\test.tif'; {Eksportowanie raportu} frxReport1.Export(frxTIFFExport1); end; |
Eksportowanie do pliku GIF | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
procedure TForm1.Button4Click(Sender: TObject); begin {Generowanie raportu. Raport musi zostać wygenerowany przed wyeksportem} frxReport1.PrepareReport(); {Ustaw zakres stron do wyeksportowania. Domyślnie eksportowane są wszystkie strony wygenerowanego raportu} frxGIFExport1.PageNumbers := '2-3'; {Ustaw, czy chcesz wyeksportować każdą stronę do osobnego pliku.} {. N zostanie dodany do nazwy pliku, gdzie N jest numerem seryjnym strony} frxGIFExport1.SeparateFiles := True; {Ustaw, czy chcesz wyeksportować do obrazu monochromatycznyego} frxGIFExport1.Monochrome := False; {Ustawianie, czy mają być przycinane puste krawędzie (marginesy strony)} frxGIFExport1.CropImages := False; {Ustaw rozdzielczość DPI} frxGIFExport1.Resolution := 96; {Ustaw, czy plik wynikowy ma być otwarty po wyeksportowaniu} frxGIFExport1.OpenAfterExport := False; {Ustaw, czy chcesz wyświetlić postęp eksportu (pokaż, która strona jest obecnie eksportowana)} frxGIFExport1.ShowProgress := False; {Ustawianie, czy ma być wyświetlane okno dialogowe filtru eksportu} frxGIFExport1.ShowDialog := False; {Ustaw nazwę wynikowego pliku.} {Należy pamiętać, że jeśli nazwa pliku nie zostanie ustawiona i wyłączysz okno dialogowe filtru eksportu,} {Okno dialogowe wyboru nazwy pliku będzie nadal wyświetlane} frxGIFExport1.FileName := 'C:\Output\test.gif'; {Eksportowanie raportu} frxReport1.Export(frxGIFExport1); end; |
Po przeanalizowaniu, jak możemy tworzyć i eksportować do takich formatów, dochodzimy do wniosku, że jest to niezwykle proste!
Ale proszę - nie korzystaj z tych funkcji! Bardzo często (na przykład wiele programów do generowania raportów podatkowych lub formularzy 1040-SR) pozwala zapisać wynikowy plik tylko w określonym formacie zamkniętym, wysłać go do wydrukowania lub zapisać jako TIFF - niestety ta opcja nie wytrzymuje żadnej krytyki z punktu widzenia dalszego wykorzystania.
Można go podziwiać lub wydrukować. Po tym wszystkim, to nie jest dużo aby wyeksportować te dokumenty do PDF (lub, jeśli to konieczne - PDF / A), ODS, ODT, RTF, DOCX, XLSX - z pełnym wsparciem odpowiednich standardów, ale znacznie wygodniejsze będzie pracować z nimi w postaci dokumentu tekstowego.