En général, quand vous commencez à jouer avec un énorme bitmap en mémoire, vous obtenez toujours ce genre de problème. La meilleure façon d'éviter cela est de diviser votre image dans un tableau ou quelque chose de similaire afin que vous puissiez créer une grille. À partir de ce moment-là, vous avez seulement besoin de charger à l'écran ce qui peut être visualisé, ce qui permettrait d'économiser beaucoup de mémoire.
Je me suis retrouvé avec ça quand j'ai décidé de créer un petit jeu pour tuer quelques fois.
J'ai décidé de créer un jeu Maze/Pipe et l'utilisateur pourrait choisir le nombre de colonnes et de lignes. J'ai décidé de limiter l'image à 10000px par 10000px.
Mon premier essai, j'avais exactement votre problème. erreur après erreur après erreur, principalement problème de mémoire.
J'ai décidé de faire des recherches sur comment faire ce que je voulais et j'ai trouvé la solution.Ce que j'ai fait, c'est que j'ai créé un tableau 2D dynamique (j'ai décidé de le limiter à un maximum de 1000 par 1000) et je leur ai juste ajouté une petite image de 10x10 pixels ou tout ce que l'utilisateur décide. Quand cela a été fait, le problème avec la mémoire/vitesse de chargement/etc ... était tout simplement parti.
utilisation de la mémoire avant que mon fix était facilement sur un concert, maintenant l'utilisation de la mémoire des applications est comprise entre 150 et 225 megs de RAM lorsque vous utilisez la limite
si vous voulez l'essayer, téléchargez cela et aller chercher dans le menu (Maze) et jouer avec le réglage:
De quelle taille parlons-nous? Etes-vous sûr que l'erreur "Parameter is not valid" est due à l'insuffisance de mémoire? –
Hi musicfreak Les bitmaps peuvent facilement être 5000 x 5000. Je peux reproduire l'erreur dans – LaZe
Pouvez-vous nous dire pourquoi il s'agit d'une question de type C#? Vous venez d'ouvrir les bitmaps dans une application de visualisation ou êtes-vous développer du code avec des bitmaps ou ouvrez-vous bitmaps dans visuel studio ...? –