Il y a aussi pbm pour les image monochromes (bitmap) et pgm pour les niveaux de gris (grayscale)
L'avantage de tout ces petits formats est qu'il sont triviaux à lire et a écrire dans quasiment tout les langages. Le paquet netpbm fournit de nombreux utilitaires de conversions tels que pnmtojpeg ou ppnmtopng. Combiné avec popen, cela permet de générer des images JPEG ou PNG à partir de données brutes en seulement quelques lignes de C ou C++
#include <math.h>
#include <stdio.h>
#define M 100
#define N 100
#define MAXV 65535
#define OUTPUT "out.png"
int main(void)
{
double val[M][N] ;
int i,j ;
FILE *out ;
// Tableau de données brutes dans l'intervalle [-1.0,1.0]
for (i=0;i<M;i++)
for (j=0;j<N;j++)
{
val[i][j] = sin(cos(i*0.1+j*0.3)*2)*sin(j*0.2-i*0.03) ;
}
// out = stdout ;
out = popen("pnmtopng > " OUTPUT ,"w");
fprintf(out,"P2\n%d %d\n%d\n",N,M,MAXV) ;
for (i=0;i<M;i++) {
for (j=0;j<N;j++) {
// convertion de [-1.0:+1.0] vers [0:MAXV]
int v = MAXV*((val[i][j]+1.0)/2.0) ;
fprintf(out , "%d ", v);
}
fprintf(out,"\n");
}
return 0;
}
[^] # Re: XPM
Posté par SChauveau . En réponse au journal Pixel Art et C++14. Évalué à 6.
Il y a aussi pbm pour les image monochromes (bitmap) et pgm pour les niveaux de gris (grayscale)
L'avantage de tout ces petits formats est qu'il sont triviaux à lire et a écrire dans quasiment tout les langages. Le paquet netpbm fournit de nombreux utilitaires de conversions tels que pnmtojpeg ou ppnmtopng. Combiné avec popen, cela permet de générer des images JPEG ou PNG à partir de données brutes en seulement quelques lignes de C ou C++