- png_set_IHDR(pngs,pngi,w,h,8,PNG_COLOR_TYPE_GRAY,PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
- for(i=0;i<h;++i)
- rows[i]=(png_byte *)(data+i*w);
+ if(alpha)
+ {
+ data2=(png_byte *)malloc(w*h*2);
+ for(i=0;i<w*h;++i)
+ {
+ data2[i*2]=255;
+ data2[i*2+1]=255-data[i];
+ }
+ for(i=0;i<h;++i)
+ rows[i]=(png_byte *)(data2+i*w*2);
+ color=PNG_COLOR_TYPE_GRAY_ALPHA;
+ }
+ else
+ {
+ for(i=0;i<h;++i)
+ rows[i]=(png_byte *)(data+i*w);
+ color=PNG_COLOR_TYPE_GRAY;
+ }
+ png_set_IHDR(pngs,pngi,w,h,8,color,PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);