2015-02-27 1 views
2

J'ai l'image 'png' avec la taille 200x200. Couleur 8bit. La taille de l'image est 10k. L'image est en mémoire sous la forme d'un tableau d'octets. Appel de bitmap bmp = new Bitmap (nouveau MemoryStream (octets)); me coûte environ 60 millisecondes. Il semble être long pour une telle taille d'image. Je sais que le format PNG est une image compressée mais pense toujours que 60 millisecondes est trop long. Est-ce que quelqu'un sait plus vite comment construire bitmap à partir de byte []?Constructeur pour Bitmap de Stream est trop lent dans un cadre compact 1

+0

Pourquoi pensez-vous que cela prend trop de temps? Quel type d'appareil utilisez-vous? Beaucoup de choses ont changé depuis le cadre compact 1 ... –

+0

Malheureusement, je dois utiliser de vieux appareils avec CF1 :( – Kostadin

Répondre

1

Ce n'est peut-être pas la réponse que vous cherchez, mais il est trop long pour les commentaires.

J'ai trouvé que sur mon appareil, le chargement d'une image prend deux fois plus de temps que les images suivantes.

Les constructeurs Bitmap acceptent un nom de fichier ou un Stream qui affichent probablement les mêmes performances. J'ai également essayé de charger une image en utilisant du code non managé (un fichier .bmp pour l'instant) mais Bitmap.FromHbitmap() prend plus de temps (35ms) que le chargement de l'image à partir du disque en utilisant SHLoadDIBitmap (17ms)! Donc, pour autant que je sache, quoi qu'il fasse, il n'y a pas moyen d'obtenir un objet Bitmap sans cette pénalité. Peut-être qu'en utilisant du code non managé pour charger et afficher les images, vous pourriez accélérer les choses, mais autant que je sache, le filtre .png se trouve derrière une interface COM qui nécessite un certain temps pour se lancer dans .NET.

+0

Après chargement de plusieurs images la vitesse est à peu près la même valeur 60ms. – Kostadin