Portál AbcLinuxu, 16. července 2025 05:20
Ahoj,
narazil jsem při prohlížení obrázků na jeden závažný problém. Mám vypálené CD s BMP obrázky, nevím z jakého důvodu, ale některé mi prohlížeč zobrazí a jiné ne.
Když použiji přes wine IrfanView, tak si mohu prohlédnout všechny bez problémů.
Chybí mi snad nějaká rozšiřující knihovna pro prohlížení BMP?
Zkoušené prohlížeče:
- Gwenview
- Gqview
Když se pokusím otevřít jeden z BMP (které nejdou prohlížet) v GIMPu, tak mi vyskočí chyba:
Chyba při čtení hlavičky souboru BMP z '/media/NOVE/pivovar/hlášení o spotřebě paliv 2. str..bmp'
#include <stdlib.h> #include <unistd.h> #include <stdio.h> #include "SDL.h" int main(int argc, char **argv) { SDL_Surface *image, *window; int i; if (argc < 2) { fprintf(stderr, "Usage: %s image.bmp ...\n", argv[0]); exit(EXIT_FAILURE); } SDL_Init(SDL_INIT_VIDEO); for (i = 1; i < argc; i++) { image = SDL_LoadBMP(argv[i]); if (!image) { fprintf(stderr, "%s: %s: %s\n", argv[0], argv[i], SDL_GetError()); continue; } window = SDL_SetVideoMode(image->w, image->h, 0, 0); if (!window) { fprintf(stderr, "%s: %s", argv[0], SDL_GetError()); continue; } SDL_BlitSurface(image, NULL, window, NULL); SDL_Flip(window); sleep(3); } return 0; }přeloží se to pomocí
gcc -Wall `sdl-config --cflags --libs` soubor.cAnebo display z ImageMagicku, ten taky zobrazí kdeco
@@ -22,13 +22,16 @@ } window = SDL_SetVideoMode(image->w, image->h, 0, 0); if (!window) { + SDL_FreeSurface(image); fprintf(stderr, "%s: %s", argv[0], SDL_GetError()); continue; } SDL_BlitSurface(image, NULL, window, NULL); SDL_Flip(window); + SDL_FreeSurface(image); sleep(3); } + SDL_Quit(); return 0; }
- Spusť si GIMP - Otevři obrázek BMP - Udělej změny, které potřebuješ - Ulož obrázek jako JPG (Soubor/UložitJako, napsat jemeno "neco.jpg")
To je vše ...
convert
z balíčku ImageMagick.
P.S.: méně výstižný subject už vás nenapadl?
convert
neumí náhodou i tohle?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.