Screenshot jpg

0

Mam do wykonania prosty program, który chcę napisać "ładnie" a nie na odczep. Program ma służyć do wykonywania screenshot'ów, udało mi się już napisać funkcję która zapisuje zrzut ekranu do pliku bmp, lecz takie pliki są strasznie ciężki - ok. 4mb. Potrzebuje zapisywać zrzuty zgodnie z konwersją jpg, lecz nie mogę sobie poradzić z tym. Póki co znalazłem jedynie GdiPlus ale doczytałem również, iż ta biblioteka nie działą pod mingw? :| ma ktoś jakiś pomysł na rozwiązanie mojego problemu ?

1

Proponowałbym raczej użyć PNG (kompresja bezstratna!), jest do tego libpng ładny.
Jeśli piszesz w C++, możesz rozważyć jeszcze ładniejszy png++

 #include <png++/png.hpp>
 //...
 png::image< png::rgb_pixel > image(128, 128);
 for (size_t y = 0; y < image.get_height(); ++y)
 {
     for (size_t x = 0; x < image.get_width(); ++x)
     {
         image[y][x] = png::rgb_pixel(x, y, x + y);
         // non-checking equivalent of image.set_pixel(x, y, ...);
     }
 }
 image.write("rgb.png");
0

Postanowiłem wypróbować twoje rozwiązanie, lecz nie mogę sobie poradzić z prawidłowym dodaniem png++ do projektu :( Na początku pobieram najnowszą wersję libpng, następnie najnowszą wersję png++, w plikach nagłówkowych png++ dokonałem małej korekty zamiast

#include<png.h>

dałem

#include<libpng/png.h>

Gdy chcę użyć funkcję którą zaprezentowałeś wyżej otrzymuje błędy ? Pewnie czegoś brakuje, ale czego ?

undefined reference to `png_create_write_struct'
undefined reference to `png_create_info_struct'
undefined reference to `png_set_write_fn'
undefined reference to `png_set_interlace_handling'
undefined reference to `png_destroy_info_struct'
0

@mto9 zdajesz sobie sprawę z tego że sam plik *.h nic ci nie daje i musisz dodać jeszcze implementacje tych metod (tzn jakiś plik źródłowy, albo plik biblioteki)?

0

Najlepszą biblioteką do ładowania obrazów jest DevIL(http://openil.sourceforge.net/)
Do ładowania obrazów obsługuje:
bmp, .cut, .dds, .doom, .exr, .hdr, .gif, .ico, .jp2, .jpg,.lbm, .mdl, .mng, .pal, .pbm, .pcd, .pcx, .pgm, .pic, .png, .ppm, .psd, .psp, .raw, .sgi, .tga and .tif
do zapisywania:
.bmp, .dds, .h, .jpg, .pal, .pbm, .pcx, .pgm, .png, .ppm, .raw, .sgi, .tga and .tif.

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