Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1438 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Recherche dll pour traitement d'images (modification de dpi)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche dll pour traitement d'images (modification de dpi)

n°790574
LCPROG
Bande d'Ours
Posté le 08-07-2004 à 16:50:24  profilanswer
 

Bonjour,
 
  Je recherche une dll ActiveX ou non qui permette d'effectuer des traitements d'images. Mon principal besoin est de modifier la résolution d'une image 600 ---> 300 dpi.
 
J'utilise l'activX ScanFix mais il ne permet pas de faire ce type de traitement.
 
Merci ! :hello:

mood
Publicité
Posté le 08-07-2004 à 16:50:24  profilanswer
 

n°790773
m0rbac
Posté le 08-07-2004 à 20:23:08  profilanswer
 

Est-ce que tu utilises un format d'image particulier ?

n°791153
LCPROG
Bande d'Ours
Posté le 09-07-2004 à 09:14:38  profilanswer
 

C'est du format tif...

n°791495
m0rbac
Posté le 09-07-2004 à 13:19:45  profilanswer
 

Pour le TIF, j'utilise la libTIFF (http://libtiff.maptools.org) qui est relativement simple à utiliser. Voici en gros comment faire pour créer une image à 256 niveaux de gris et une image bitmap 2 couleurs [désolé, c'est tout ce que j'ai sous la main, mais pour une image couleur, ça ne doit pas être bien différent  :D ]
 
Ecriture du TIF 256 couleurs:

Code :
  1. // rem: l'image en mémoire est stockée dans la variable "data"
  2. TIFF *img = TIFFOpen(fname, "w" );
  3. TIFFSetField(img, TIFFTAG_IMAGEWIDTH, img_width);
  4. TIFFSetField(img, TIFFTAG_IMAGELENGTH, img_height);
  5. TIFFSetField(img, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
  6. TIFFSetField(img, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
  7. TIFFSetField(img, TIFFTAG_IMAGEDESCRIPTION, "ici une petite description" );
  8. TIFFSetField(img, TIFFTAG_ROWSPERSTRIP, 1);
  9. TIFFSetField(img, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
  10. TIFFSetField(img, TIFFTAG_BITSPERSAMPLE, 8);
  11. TIFFSetField(img, TIFFTAG_SAMPLESPERPIXEL, 1);
  12. TIFFSetField(img, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
  13. TIFFSetField(img, TIFFTAG_XRESOLUTION, x_resolution);
  14. TIFFSetField(img, TIFFTAG_YRESOLUTION, y_resolution);
  15. TIFFSetField(img, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
  16. // Ecriture à proporement parler
  17. // rem: je fais une inversion verticale ici
  18. for (unsigned long y = 0; y < img_height; ++y)
  19.   TIFFWriteScanline(img, data+y*img_width, img_height-y-1, 0);
  20. TIFFClose(img);


 
Ecriture d'un TIF 2 couleurs:

Code :
  1. // rem: l'image en mémoire est stockée dans la variable "data"
  2. unsigned long x, y, z, i, j;
  3. unsigned char val;
  4. // buffer utilisé pour l'encodage des bits
  5. unsigned char *buffer =
  6.   (unsigned char*) malloc(img_width*sizeof(unsigned char));
  7. TIFF *img = TIFFOpen(fname, "w" );
  8. TIFFSetField(img, TIFFTAG_IMAGEWIDTH, img_width);
  9. TIFFSetField(img, TIFFTAG_IMAGELENGTH, img_height);
  10. TIFFSetField(img, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
  11. TIFFSetField(img, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
  12. TIFFSetField(img, TIFFTAG_IMAGEDESCRIPTION, "ici une petite description" );
  13. TIFFSetField(img, TIFFTAG_ROWSPERSTRIP, 1);
  14. TIFFSetField(img, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
  15. TIFFSetField(img, TIFFTAG_BITSPERSAMPLE, 1);
  16. TIFFSetField(img, TIFFTAG_SAMPLESPERPIXEL, 1);
  17. TIFFSetField(img, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
  18. TIFFSetField(img, TIFFTAG_XRESOLUTION, x_resolution);
  19. TIFFSetField(img, TIFFTAG_YRESOLUTION, y_resolution);
  20. TIFFSetField(img, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
  21. for (y = 0; y < img_height; ++y) {
  22.   memset(buffer, 0, img_width*sizeof(unsigned char));
  23.   z = i = 0;
  24.   val = 0;
  25.   j = y*img_width;
  26.   for (x = 0; x < img_width; ++x) {
  27.     if (!(x%8) && x) { buffer[z++] = val; val = 0; i = 0; }
  28.     val |= ((data[j+x]?0:1)<<(7-i++));
  29.   }
  30.   buffer[z++] = val;
  31.   TIFFWriteScanline(img, buffer, img_height-y-1, 0);
  32. }
  33. free(buffer);
  34. TIFFClose(img);


Voilà, j'espère que tu vas t'en sortir avec ça  :)


Message édité par m0rbac le 09-07-2004 à 13:20:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Recherche dll pour traitement d'images (modification de dpi)

 

Sujets relatifs
[SAS]Besoin d'aide, traitement d'une grande baseCréer des images
vba comment faire un recherche dans une feuille et l'afficher ?MATLAB - Traitement d'images
pile memoire - modification donneesCacher les fichiers images,gfx,sons utilisés dans une appli (un jeu)?
modification du nom d'un service sous C++Builder[PHP] Dans quel répertoire se placent les images qu'on uploade?
recherche de dico compatible a php 
Plus de sujets relatifs à : Recherche dll pour traitement d'images (modification de dpi)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR