Changeset 3519 in Sophya for trunk/SophyaPI/PI/psfile.cc


Ignore:
Timestamp:
Sep 11, 2008, 2:43:55 PM (17 years ago)
Author:
ansari
Message:

1/ Introduction des classes auxiliaires PIPixColIdx , PIPixRGB , PIPixRGBArray
(nouveau fichier pipixutils.cc .h) pour support de tables de couleurs avec > 256 couleurs.
2/ Ajout de tables de couleurs RGB (216/512/4096) pour representation d'image RGB
3/ Extension et modification de la classe P2DArrayAdapter, introduction de la methode P2DArrayAdapter::MeanVal()
4/ Modif de la classe LUT pour introduction typeRGB
5/ Modification et propagation ds PIImage , PIPIxmap ...

Reza , 11/09/2008

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/psfile.cc

    r2615 r3519  
    13671367    for(i = 0; i < Ny; i++) {
    13681368        for(j = 0; j<Nx-1; j++ )
    1369             fprintf(mPSFile, "%02X", Pict[i*Nx+j]);
    1370     fprintf(mPSFile, "%02X\n", Pict[i*Nx+j]);
     1369            fprintf(mPSFile, "%02X", (int)Pict[i*Nx+j]);
     1370    fprintf(mPSFile, "%02X\n", (int)Pict[i*Nx+j]);
     1371    }
     1372    /* Un petit grestore ...*/
     1373    fprintf(mPSFile, "gr\n");
     1374}
     1375
     1376void PSFile::Image(double x0, double y0, double Tx, double Ty,
     1377                   int Nx, int Ny,
     1378                   unsigned short *Pict,
     1379                   PIColorMap *mMap) {
     1380
     1381    int i, j;
     1382
     1383    /* Buffers PostScript */
     1384    fprintf(mPSFile, "/Taille %d def\n", Nx);
     1385    fprintf(mPSFile, "/ImStr Taille string def\n");
     1386    fprintf(mPSFile, "/RGBStr Taille 3  mul string def\n");
     1387
     1388    /* Ecriture ColorMap */
     1389    fprintf(mPSFile, "/ColorMap %05d array def\n", mMap->NCol() );
     1390    for(i = 0; i < mMap->NCol(); i++) {
     1391        fprintf(mPSFile, "ColorMap %d [16#%02X 16#%02X 16#%02X] put\n",
     1392                i,
     1393                (int)(mMap->GetColor(i).red/256),
     1394                (int)(mMap->GetColor(i).green/256),
     1395                (int)(mMap->GetColor(i).blue/256));
     1396    }
     1397    /* Emplacement de l'image */
     1398    fprintf(mPSFile, "gs %.2f Ux %.2f Uy tr %.2f Ux %.2f Uy sc\n", x0, y0, Tx, Ty);
     1399    /* Nbr pix-X, Nbr pix-Y bits/pixels */
     1400    fprintf(mPSFile, "%d %d 16\n", Nx, Ny);
     1401    /* Matrice de passage */
     1402    fprintf(mPSFile, "[%d 0 0 %d 0 0]", Nx, Ny);
     1403    /* Fonction colorimage */
     1404    fprintf(mPSFile, "{currentfile ImStr readhexstring pop GetRGB}\
     1405false 3 colorimage\n\n");
     1406    /* Data */
     1407    for(i = 0; i < Ny; i++) {
     1408        for(j = 0; j<Nx-1; j++ )
     1409            fprintf(mPSFile, "%04X", (int)Pict[i*Nx+j]);
     1410    fprintf(mPSFile, "%04X\n", (int)Pict[i*Nx+j]);
    13711411    }
    13721412    /* Un petit grestore ...*/
Note: See TracChangeset for help on using the changeset viewer.