Portál AbcLinuxu, 11. prosince 2025 10: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.