You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.1 KiB
83 lines
2.1 KiB
/************************************************************************
|
|
|
|
The images produced by this test are checkboard gradients. They
|
|
ramp from black in the upper left corner to full color in the lower
|
|
right corner.
|
|
|
|
by Michael Garland, 1999.
|
|
|
|
$Id: t-img.cxx 426 2004-09-27 04:34:55Z garland $
|
|
|
|
************************************************************************/
|
|
|
|
#include <gfx/gfx.h>
|
|
#include <gfx/raster.h>
|
|
|
|
static
|
|
void grayscale_test()
|
|
{
|
|
ByteRaster img(256, 256, 1);
|
|
|
|
int i, j, c;
|
|
|
|
for(i=0; i<img.height(); i++) for(j=0; j<img.width(); j++)
|
|
{
|
|
c = ((((i&0x8)==0)^((j&0x8))==0))*(i+j)/2;
|
|
img.pixel(j,i)[0] = c;
|
|
}
|
|
|
|
write_pnm_image("chex1.pgm", img);
|
|
write_tiff_image("chex1.tif", img);
|
|
write_png_image("chex1.png", img);
|
|
write_jpeg_image("chex1.jpg", img);
|
|
|
|
ByteRaster *pgm = read_pnm_image("chex1.pgm");
|
|
ByteRaster *tif = read_tiff_image("chex1.tif");
|
|
ByteRaster *png = read_png_image("chex1.png");
|
|
ByteRaster *jpg = read_jpeg_image("chex1.jpg");
|
|
|
|
if( pgm ) write_pnm_image("chex1-dup.pgm", *pgm);
|
|
if( tif ) write_tiff_image("chex1-dup.tif", *tif);
|
|
if( png ) write_png_image("chex1-dup.png", *png);
|
|
if( jpg ) write_jpeg_image("chex1-dup.jpg", *jpg);
|
|
}
|
|
|
|
static
|
|
void rgb_test()
|
|
{
|
|
ByteRaster img(256, 256, 3);
|
|
|
|
int i, j, c;
|
|
|
|
for(i=0; i<img.height(); i++) for(j=0; j<img.width(); j++)
|
|
{
|
|
c = ((((i&0x8)==0)^((j&0x8))==0))*(i+j)/2;
|
|
img.pixel(j,i)[0] = c;
|
|
img.pixel(j,i)[1] = c/2;
|
|
img.pixel(j,i)[2] = c/4;
|
|
}
|
|
|
|
write_pnm_image("chex3.ppm", img);
|
|
write_tiff_image("chex3.tif", img);
|
|
write_png_image("chex3.png", img);
|
|
write_jpeg_image("chex3.jpg", img);
|
|
|
|
ByteRaster *ppm = read_pnm_image("chex3.ppm");
|
|
ByteRaster *tif = read_tiff_image("chex3.tif");
|
|
ByteRaster *png = read_png_image("chex3.png");
|
|
ByteRaster *jpg = read_jpeg_image("chex3.jpg");
|
|
|
|
if( ppm ) write_pnm_image("chex3-dup.ppm", *ppm);
|
|
if( tif ) write_tiff_image("chex3-dup.tif", *tif);
|
|
if( png ) write_png_image("chex3-dup.png", *png);
|
|
if( jpg ) write_jpeg_image("chex3-dup.jpg", *jpg);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
grayscale_test();
|
|
rgb_test();
|
|
|
|
return 0;
|
|
}
|