Anomalie #42

pb bmpFileRead

Added by Serge Koudoro almost 9 years ago. Updated over 8 years ago.

Status:NouveauStart date:
Priority:NormalDue date:
Assignee:-% Done:

50%

Category:old plone Bugs
Target version:-

Description

Description:
----------------------------------------
bmpFileRead echoue à la lecture de certain bmp en niveaux de gris (au moins ceux
créés par imagemagick) (et renvoie RES_OK).
Voila un petit programme pour mettre en evidence le probleme :
<CODE>
#include <morphee/imageIO/include/morpheeImageIO.hpp>
#include <morphee/image/include/morpheeImage.hpp>
int main(int argc, char *argv[]) {
morphee::ImageInterface *img;
morphee::RES_C res_io;
std::string input_filename, output_filename;
morphee::imageIO::initImageIO();
input_filename.assign(argv1);
output_filename.assign(argv2);
res_io = morphee::imageIO::bmpFileRead(img, input_filename);
if ( (res_io!= morphee::RES_OK) || (img==NULL) ) {
std::cout << "Unable to read image" << std::endl;
return -1;
}
std::cout << "read image...OK" << std::endl;
if (morphee::imageIO::bmpFileWrite(img, output_filename)!=
morphee::RES_OK) {
std::cout << "Unable to write image" << std::endl;
return -1;
}
std::cout << "write image...Ok" << std::endl;
return 0;
}
</CODE>

#2 13/02/2008 17:43 (Tibs)
---------------------------------------------------------------------------
Change: status: "pending" -> "accepted"
Comment:
Bon le lecteur de BMP est vraiment moisi ca c sur, mais s'il renvoie un res_ok
ca vaudra le coup de regarder si y'a pas une coquille dans le code.
Accessoirement: est-ce que ce serait pas l'ecriture de bmp qui foire ? A
verifier sans doute avec le bout de code propose...

#1 13/02/2008 14:23 (jo)
---------------------------------------------------------------------------
Change: topic: "" -> "UI"
Change: solution: "" -> "?"
Change: title: "" -> "pb bmpFileRead"
Change: description: "" -> "bmpFileRead echoue à la lecture de certain bmp en niveaux de gris (au moins ceux créés par imagemagick) (et renvoie RES_OK).
Voila un petit programme pour mettre en evidence le probleme :
<CODE>
#include <morphee/imageIO/include/morpheeImageIO.hpp>
#include <morphee/image/include/morpheeImage.hpp>

int main(int argc, char *argv[]) {
morphee::ImageInterface *img;
morphee::RES_C res_io;
std::string input_filename, output_filename;

morphee::imageIO::initImageIO();
input_filename.assign(argv[1]);
output_filename.assign(argv[2]);
res_io = morphee::imageIO::bmpFileRead(img, input_filename);
if ( (res_io!= morphee::RES_OK) || (img==NULL) ) {
std::cout << "Unable to read image" << std::endl;
return -1;
}
std::cout << "read image...OK" << std::endl;
if (morphee::imageIO::bmpFileWrite(img, output_filename)!= morphee::RES_OK) {
std::cout << "Unable to write image" << std::endl;
return -1;
}
std::cout << "write image...Ok" << std::endl;
return 0;
}
&lt;/CODE&gt;"

History

#1 Updated by Ali HASSAINE almost 9 years ago

#4 comment 14/02/2008 11:58 (ali)
---------------------------------------------------------------------------
Comment:
Bon, il se trouve que le format bmp peut utiliser plusieurs types de
compression. La fonction bmpFileRead ne permet de lire que les bmp non
compressés.
Dans ReadBMPHeader, on lit bien le type de compression utilisée
dans la variable
biCompression. Mais curieusement, le bitmap est lu dans bmpFileRead
à chaque
fois comme s'il n'était pas compressé. Et ce, indépendamment de la
valeur de la
variable biCompression.
En l'occurrence, dans l'image en question, la compression utilisée est
m_BI_RLE8, et le fichier est lu comme s'il n'était pas compressé.
En attendant de développer (ou de copier de quelque part) le code
permettant de
lire les bmp avec les différents format de compression. Il faudrait
pour le
moment ajouter dans ReadBMPHeader, un test pour n'accepter que les
bmp non
compressés:
if (biCompression!=m_BI_RGB) {
MORPHEE_REGISTER_ERROR(std::string("bmpFileRead can't read
compressed bmp
files"));
return RES_ERROR;
}

#3 14/02/2008 10:01 (ali)
---------------------------------------------------------------------------
Upload: test.bmp (Un fichier bmp qui présente ce problème.)

#2 Updated by Serge Koudoro almost 9 years ago

  • Category set to old plone Bugs
  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

#3 Updated by Serge Koudoro almost 9 years ago

  • Status changed from Résolu to Nouveau
  • % Done changed from 100 to 50

#4 Updated by Etienne Decencière over 8 years ago

Je ne sais pas si c'est lié, mais la lecture de l'image:

trunk/utilities/Images/Gray/antibiog.bmp

se passe mal chez moi...

Also available in: Atom PDF