OutOfMemory Appli Windows Mobile

OutOfMemory Appli Windows Mobile - VB/VBA/VBS - Programmation

Marsh Posté le 11-04-2007 à 13:50:24    

Bonjour  :hello: ,
 
Je travaille actuellement sur une application windows mobile avec Visual Studio 2005 et le Framework 2.0. J'essaye d'integrer à un objet Bitmap une image dont la résolution est supérieur à 1920/1440. Le problème surgit lorsque mon image est supérieur à ces 1920/1440 à ce niveau là:
 

Code :
  1. MyImage = New Bitmap(/MonImage.jpg)

 
 
En me mettant comme exeption : OutOfMemory.  
 
Plusieurs solutions me sont venu à l'esprit :
 
- Modifier la taille de la pile. Dans le code je n'arrive pas à le trouver. J'ai essayé de modifier directement l'executable avec un editeur hexa pour augmenter le heap, mais ça n'a pas fonctionné.
- Mettre uen SD Carte et definir cette mémoire comme une "extension" de la mémoire principal. Je n'ai pas vu grand chose sur le net sur ça.
 
Merci.


---------------
Que vois-tu quand tu fermes les yeux ?
Reply

Marsh Posté le 11-04-2007 à 13:50:24   

Reply

Marsh Posté le 11-04-2007 à 14:49:50    

avec des "" autour du nom du fichier, ça pourraît être pas mal.
depuis, je ne crois pas que tu puisses avoir de fichiers à la racine du système de fichiers d'un système windows mobile. donc vire ton "/"

Reply

Marsh Posté le 11-04-2007 à 14:50:55    

-- edit : j'ai rien dit. en fait à marche pas (mais comment je faisais l'autre jour :??:)

Message cité 1 fois
Message édité par MagicBuzz le 11-04-2007 à 15:05:02
Reply

Marsh Posté le 11-04-2007 à 15:34:52    

MagicBuzz a écrit :

-- edit : j'ai rien dit. en fait à marche pas (mais comment je faisais l'autre jour :??:)


En faite c'était juste histoire de dire que je m'étais une image. :o
 
Mon code véritable :
 

Code :
  1. MyImage = New Bitmap("\Program Files\deviceapplication1\PlanTest.jpg" )


---------------
Que vois-tu quand tu fermes les yeux ?
Reply

Marsh Posté le 11-04-2007 à 15:37:13    

vivi
 
j'ai essayé avec un code "qui marche" et effectivement, quand l'image est trop grosse, ça plante.
 
par contre, je trouve ça très bizarre que ça plante dès ces valeurs aussi faibles, parceque pourtant niveau taille en mémoire c'est pas bien gros une image, même dans cette résolution :??:

Reply

Marsh Posté le 11-04-2007 à 15:48:22    

MagicBuzz a écrit :

vivi
 
j'ai essayé avec un code "qui marche" et effectivement, quand l'image est trop grosse, ça plante.
 
par contre, je trouve ça très bizarre que ça plante dès ces valeurs aussi faibles, parceque pourtant niveau taille en mémoire c'est pas bien gros une image, même dans cette résolution :??:


Oui c'est la même question que je me suis posé. J'ai essayé de mettre une image de cette taille avec une pixelisation très faible pour atteindre les 50 ko de taille d'image, mais c'est la même chose. Cela vient bien de la taille de l'image et non de son poids. :/


---------------
Que vois-tu quand tu fermes les yeux ?
Reply

Marsh Posté le 11-04-2007 à 15:58:57    

chaud les marrons, je trouve gère plus que toi ;)
 
en tout cas en bossant avec un stream, ça marche pas mieux.
peut-être à partir d'un HBitmap ? Je regarde la doc pour voir à quoi ça correspond :)
 
A la base, je pense qu'il faut réussir à récupérer une version thb de l'image au chargement. Car tu n'as de toute façon pas besoin d'avoir en mémoire image qui dépasse la taille affichable je pense, si ?

Reply

Marsh Posté le 11-04-2007 à 16:01:02    

MagicBuzz a écrit :

chaud les marrons, je trouve gère plus que toi ;)
 
en tout cas en bossant avec un stream, ça marche pas mieux.
peut-être à partir d'un HBitmap ? Je regarde la doc pour voir à quoi ça correspond :)
 
A la base, je pense qu'il faut réussir à récupérer une version thb de l'image au chargement. Car tu n'as de toute façon pas besoin d'avoir en mémoire image qui dépasse la taille affichable je pense, si ?


Justement, si. :D
 
Je veux pouvoir avoir une image assez grande en réso pour pouvoir me deplacer dessus ensuite sans problème. Ca fonctionne, mais bon, avec cette limite assez contraignante.


---------------
Que vois-tu quand tu fermes les yeux ?
Reply

Marsh Posté le 11-04-2007 à 16:02:16    

je trouve rien d'intéressant.
 
il te reste plus qu'à traîner sur les newsgroup de la msdn. y'a des gens assez compétents qui traînent dessus, donc avec un peu de pot...
 
seul hic, c'est pas aussi rapide qu'ici :D

Reply

Marsh Posté le 11-04-2007 à 16:04:17    

pour lire un bmp, logiquement, no soucy, tu peux faire une méthode à la main sans problème qui va faire des seek là où il faut, en charger une image d'une taille plus petite, que tu pourras rafraîchir au fur et à mesure que le déplacement s'approchera du bord. mais pour une image compressée (jpg, gif ou png) bon courrage, là je la sent pas trop :D

Reply

Marsh Posté le 11-04-2007 à 16:04:17   

Reply

Marsh Posté le 11-04-2007 à 16:08:25    

MagicBuzz a écrit :

pour lire un bmp, logiquement, no soucy, tu peux faire une méthode à la main sans problème qui va faire des seek là où il faut, en charger une image d'une taille plus petite, que tu pourras rafraîchir au fur et à mesure que le déplacement s'approchera du bord. mais pour une image compressée (jpg, gif ou png) bon courrage, là je la sent pas trop :D


Le problème du BMP c'est que c'est "lourd" comme format. Ca prend trop de place. :/
 
Merci pour ton aide. :)

Message cité 1 fois
Message édité par Lemminkainen le 11-04-2007 à 16:08:45

---------------
Que vois-tu quand tu fermes les yeux ?
Reply

Marsh Posté le 11-04-2007 à 16:20:08    

Lemminkainen a écrit :

Le problème du BMP c'est que c'est "lourd" comme format. Ca prend trop de place. :/
 
Merci pour ton aide. :)


ben de toute façon, une fois l'image chargée en mémoire, c'est un bitmap qui est utilisé.
 
ensuite, tu peux toujours essayer de chercher sur le net s'il existe des libs toutes faites permettant par exemple, à partir d'un nom de fichier et un rectangle en paramètre, te ramener un crop de l'image selon le rectangle spécifié.
je pense que c'est la seule solution.
à la main c'est facile à coder pour un bmp (c'est pour ça que je te le proposais) mais pour un jpg ou autre, je vais pas te proposer d'écrire ton propre convertisseur :D

Reply

Marsh Posté le 11-04-2007 à 16:42:46    

MagicBuzz a écrit :

ben de toute façon, une fois l'image chargée en mémoire, c'est un bitmap qui est utilisé.
 
ensuite, tu peux toujours essayer de chercher sur le net s'il existe des libs toutes faites permettant par exemple, à partir d'un nom de fichier et un rectangle en paramètre, te ramener un crop de l'image selon le rectangle spécifié.
je pense que c'est la seule solution.
à la main c'est facile à coder pour un bmp (c'est pour ça que je te le proposais) mais pour un jpg ou autre, je vais pas te proposer d'écrire ton propre convertisseur :D


Oui c'est sur. :o
 
Je vais voir. :/


---------------
Que vois-tu quand tu fermes les yeux ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed