Bonjour
dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000 pixels).
Pour les afficher, je les découpe en tuiles que je dessine les unes après
les autres.
La taille max d'une tuile est d'environ 6000x6000 pixels (soit un bitmap de
6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des tuiles plus
grandes, il y a des problèmes de mémoire (ou d'autres types).
Il semble que ça ne dépende pas de la RAM disponible (je travaille sur des
machines de 1 ou 2 Go).
Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+ (qui
serait autour de 6000x6000) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud Debaene
alexsea wrote:
Bonjour dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000 pixels). Pour les afficher, je les découpe en tuiles que je dessine les unes après les autres. La taille max d'une tuile est d'environ 6000x6000 pixels (soit un bitmap de 6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des tuiles plus grandes, il y a des problèmes de mémoire (ou d'autres types). Il semble que ça ne dépende pas de la RAM disponible (je travaille sur des machines de 1 ou 2 Go). Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+ (qui serait autour de 6000x6000) ?
Un jour ou l'autre, la bitmap que tu veux afficher doit ête copiée dans la mémoire de ta carte vidéo : Si elle est plus grande que la mémoire disponible sur la carte, tu as effectivement un problème.
Plus sérieusement, ca ne sert strictement à rien de vouloir afficher des bitmaps avec une telle résolution (aucun écran n'étant capable de suivre) : tu ferais mieux de faire du resampling pour réduire la résolution de ta bitmap avant de l'afficher.
Arnaud MVP - VC
alexsea wrote:
Bonjour
dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000
pixels). Pour les afficher, je les découpe en tuiles que je dessine
les unes après les autres.
La taille max d'une tuile est d'environ 6000x6000 pixels (soit un
bitmap de 6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des
tuiles plus grandes, il y a des problèmes de mémoire (ou d'autres
types).
Il semble que ça ne dépende pas de la RAM disponible (je travaille
sur des machines de 1 ou 2 Go).
Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+
(qui serait autour de 6000x6000) ?
Un jour ou l'autre, la bitmap que tu veux afficher doit ête copiée dans la
mémoire de ta carte vidéo : Si elle est plus grande que la mémoire
disponible sur la carte, tu as effectivement un problème.
Plus sérieusement, ca ne sert strictement à rien de vouloir afficher des
bitmaps avec une telle résolution (aucun écran n'étant capable de suivre) :
tu ferais mieux de faire du resampling pour réduire la résolution de ta
bitmap avant de l'afficher.
Bonjour dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000 pixels). Pour les afficher, je les découpe en tuiles que je dessine les unes après les autres. La taille max d'une tuile est d'environ 6000x6000 pixels (soit un bitmap de 6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des tuiles plus grandes, il y a des problèmes de mémoire (ou d'autres types). Il semble que ça ne dépende pas de la RAM disponible (je travaille sur des machines de 1 ou 2 Go). Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+ (qui serait autour de 6000x6000) ?
Un jour ou l'autre, la bitmap que tu veux afficher doit ête copiée dans la mémoire de ta carte vidéo : Si elle est plus grande que la mémoire disponible sur la carte, tu as effectivement un problème.
Plus sérieusement, ca ne sert strictement à rien de vouloir afficher des bitmaps avec une telle résolution (aucun écran n'étant capable de suivre) : tu ferais mieux de faire du resampling pour réduire la résolution de ta bitmap avant de l'afficher.
Arnaud MVP - VC
alexsea
le problème de mémoire apparait sur la création (constructeur) du bitmap/tuile, pas à l'affichage, donc je ne pense pas que se soit un pb de carte vidéo. Mes images sont des cartes scannées (désolé, c'est gros...), on veut pouvoir en visualiser des morceaux et scroller dedans, jusque là pas de pb, le pb survient quand on veut dezoomer de façon importante et que le rapport nombre de pixels du morceau de carte à visualier / nombre de pixels de l'écran est important, et alors là il est nécessaire de passer par une phase de tuilage pour faire du resampling de façon simple (en passant par la méthode DrawImage() de GDI+)... Tous ça marche plutôt bien, je voulais juste comprendre et savoir s'il y avait une limite connue pour la taille des bitmaps en GDI+.
"Arnaud Debaene" a écrit :
alexsea wrote: > Bonjour > dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000 > pixels). Pour les afficher, je les découpe en tuiles que je dessine > les unes après les autres. > La taille max d'une tuile est d'environ 6000x6000 pixels (soit un > bitmap de 6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des > tuiles plus grandes, il y a des problèmes de mémoire (ou d'autres > types). > Il semble que ça ne dépende pas de la RAM disponible (je travaille > sur des machines de 1 ou 2 Go). > Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+ > (qui serait autour de 6000x6000) ?
Un jour ou l'autre, la bitmap que tu veux afficher doit ête copiée dans la mémoire de ta carte vidéo : Si elle est plus grande que la mémoire disponible sur la carte, tu as effectivement un problème.
Plus sérieusement, ca ne sert strictement à rien de vouloir afficher des bitmaps avec une telle résolution (aucun écran n'étant capable de suivre) : tu ferais mieux de faire du resampling pour réduire la résolution de ta bitmap avant de l'afficher.
Arnaud MVP - VC
le problème de mémoire apparait sur la création (constructeur) du
bitmap/tuile, pas à l'affichage, donc je ne pense pas que se soit un pb de
carte vidéo.
Mes images sont des cartes scannées (désolé, c'est gros...), on veut pouvoir
en visualiser des morceaux et scroller dedans, jusque là pas de pb, le pb
survient quand on veut dezoomer de façon importante et que le rapport nombre
de pixels du morceau de carte à visualier / nombre de pixels de l'écran est
important, et alors là il est nécessaire de passer par une phase de tuilage
pour faire du resampling de façon simple (en passant par la méthode
DrawImage() de GDI+)...
Tous ça marche plutôt bien, je voulais juste comprendre et savoir s'il y
avait une limite connue pour la taille des bitmaps en GDI+.
"Arnaud Debaene" a écrit :
alexsea wrote:
> Bonjour
> dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000
> pixels). Pour les afficher, je les découpe en tuiles que je dessine
> les unes après les autres.
> La taille max d'une tuile est d'environ 6000x6000 pixels (soit un
> bitmap de 6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des
> tuiles plus grandes, il y a des problèmes de mémoire (ou d'autres
> types).
> Il semble que ça ne dépende pas de la RAM disponible (je travaille
> sur des machines de 1 ou 2 Go).
> Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+
> (qui serait autour de 6000x6000) ?
Un jour ou l'autre, la bitmap que tu veux afficher doit ête copiée dans la
mémoire de ta carte vidéo : Si elle est plus grande que la mémoire
disponible sur la carte, tu as effectivement un problème.
Plus sérieusement, ca ne sert strictement à rien de vouloir afficher des
bitmaps avec une telle résolution (aucun écran n'étant capable de suivre) :
tu ferais mieux de faire du resampling pour réduire la résolution de ta
bitmap avant de l'afficher.
le problème de mémoire apparait sur la création (constructeur) du bitmap/tuile, pas à l'affichage, donc je ne pense pas que se soit un pb de carte vidéo. Mes images sont des cartes scannées (désolé, c'est gros...), on veut pouvoir en visualiser des morceaux et scroller dedans, jusque là pas de pb, le pb survient quand on veut dezoomer de façon importante et que le rapport nombre de pixels du morceau de carte à visualier / nombre de pixels de l'écran est important, et alors là il est nécessaire de passer par une phase de tuilage pour faire du resampling de façon simple (en passant par la méthode DrawImage() de GDI+)... Tous ça marche plutôt bien, je voulais juste comprendre et savoir s'il y avait une limite connue pour la taille des bitmaps en GDI+.
"Arnaud Debaene" a écrit :
alexsea wrote: > Bonjour > dans mon appli je dois gérer des gros bitmaps (ex: 30000x30000 > pixels). Pour les afficher, je les découpe en tuiles que je dessine > les unes après les autres. > La taille max d'une tuile est d'environ 6000x6000 pixels (soit un > bitmap de 6Kx6Kx32bits ~ 150Mo sauf erreur). Si j'essaie de créer des > tuiles plus grandes, il y a des problèmes de mémoire (ou d'autres > types). > Il semble que ça ne dépende pas de la RAM disponible (je travaille > sur des machines de 1 ou 2 Go). > Y a t'il à votre connaisance une taille max pour les bitmaps en GDI+ > (qui serait autour de 6000x6000) ?
Un jour ou l'autre, la bitmap que tu veux afficher doit ête copiée dans la mémoire de ta carte vidéo : Si elle est plus grande que la mémoire disponible sur la carte, tu as effectivement un problème.
Plus sérieusement, ca ne sert strictement à rien de vouloir afficher des bitmaps avec une telle résolution (aucun écran n'étant capable de suivre) : tu ferais mieux de faire du resampling pour réduire la résolution de ta bitmap avant de l'afficher.
Arnaud MVP - VC
alexsea
> le problème de mémoire apparait sur la création (constructeur) du bitmap/tuile, pas à l'affichage, donc je ne pense pas que se soit un pb de carte vidéo.
sauf si bien sûr un bitmap est créé en utilisant la mémoire vidéo... Est-ce le cas ? Et si oui, y a t'il un moyen de récupérer la taille de cette mémoire vidéo en .Net ?
> le problème de mémoire apparait sur la création (constructeur) du
bitmap/tuile, pas à l'affichage, donc je ne pense pas que se soit un pb de
carte vidéo.
sauf si bien sûr un bitmap est créé en utilisant la mémoire vidéo...
Est-ce le cas ?
Et si oui, y a t'il un moyen de récupérer la taille de cette mémoire vidéo
en .Net ?
> le problème de mémoire apparait sur la création (constructeur) du bitmap/tuile, pas à l'affichage, donc je ne pense pas que se soit un pb de carte vidéo.
sauf si bien sûr un bitmap est créé en utilisant la mémoire vidéo... Est-ce le cas ? Et si oui, y a t'il un moyen de récupérer la taille de cette mémoire vidéo en .Net ?
Titeuf
Bonjour, Pour connaître la taille de ta ram sur ta carte jette un coup d'oeil http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_videocontroller.asp Utilise les classes de management pour récupérer les infos que tu veux.
Bonjour,
Pour connaître la taille de ta ram sur ta carte jette un coup d'oeil
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_videocontroller.asp
Utilise les classes de management pour récupérer les infos que tu veux.
Bonjour, Pour connaître la taille de ta ram sur ta carte jette un coup d'oeil http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_videocontroller.asp Utilise les classes de management pour récupérer les infos que tu veux.