2016-02-10 1 views
1

J'ai actuellement un fichier .BMP de 48 000 001 Ko sur mon SSD (c'est une version de Mandelbrot en 128 kpx × 128 kpx) et je voudrais l'afficher. J'ai plusieurs choix: je le convertis en .PNG ou .JPEG, bien que je préférerais le PNG, qui est le plus raisonnable ou je trouve un logiciel assez fort pour l'afficher et me laisser bouger librement comme je peux avec un 40k × 40k Version .PNG.Afficher un énorme fichier BMP

Quelqu'un at-il une idée pour accomplir cette tâche énorme?

(j'ai essayé quelques convertisseurs, mais ils ne semblent pas fonctionner correctement ...

+0

Ce serait 48 gigaoctets - ou "jigobyte" comme Doc l'appellerait - ce qui sonne à peu près juste pour ces dimensions.Si c'est vraiment une simple BMP humble, vous pourriez écrire un programme assez trivial dans (insérer la langue préférée ici) pour le sous-échantillonner avec un algorithme de plus proche voisin le plus proche jusqu'à une taille plus raisonnable, donc un logiciel normal peut le traiter plus loin comme vous le souhaitez. – usr2564301

+0

Le problème est que je ne veux pas le réduire, je pourrais peut-être le couper en plusieurs parties comme vous l'avez suggéré puis le convertir mais je ne suis pas sûr de pouvoir obtenir avec plusieurs fichiers une image unique dans laquelle je peux bouger librement dans, zoom arrière ... – Maxence1402

+0

La plupart des visionneuses Mandelbrot ne stockent pas l'image entière; à la place, ils calculent l'image pour la fenêtre d'intérêt, à partir de zéro. Ceux que j'ai regardés sont assez rapides, et vous pouvez zoomer beaucoup plus loin dans l'ensemble qu'une image d'une image de 128k par 128k fournirait. –

Répondre

1

Vous pouvez probablement utiliser stream qui fait partie de la suite ImageMagick pour extraire une partie de celui-ci au format PNG ou JPEG ou TIFF, puis peut-être regarder libvips et DZSAVE pour le zoom profond

+0

La diffusion continue de données à partir du disque n'entraînerait-elle pas un décalage perceptible? Je penche vers (mon autre commentaire nonobstant) un format de données personnalisé avec cette image carrelée dans des carrés de taille raisonnable. Chaque pavé lui-même pourrait être un PNG en lui-même, et dans le fichier de données concaténé, un index pourrait être écrit, avec la taille de chaque pavé et les décalages et les longueurs des pavés séparés. De cette façon, des tuiles séparées peuvent être chargées et déchargées à la demande. – usr2564301

+1

@Jongware Je suggérais 'stream' comme un moyen de mémoire à faible mémoire de découper l'image massive originale en morceaux gérables, puis en utilisant une approche pyramidale du zoom profond de l'approche une fois que l'OP franchit l'obstacle du massif initial taille du fichier ... donc pas constamment en streaming à partir du disque, juste faire la dissection initiale avec l'outil 'stream'. –

+0

Je suis désolé mais je ne sais rien sur C ou C++ ou autre, je ne connais que Python et Caml en tant qu'étudiant en mathématiques ... – Maxence1402