#include "zgl.h" /* * image conversion */ void gl_convertRGB_to_5R6G5B(unsigned short *pixmap,unsigned char *rgb, int xsize,int ysize) { int i,n; unsigned char *p; p=rgb; n=xsize*ysize; for(i=0;i>3); p+=3; } } void gl_convertRGB_to_8A8R8G8B(unsigned int *pixmap, unsigned char *rgb, int xsize, int ysize) { int i,n; unsigned char *p; p=rgb; n=xsize*ysize; for(i=0;i> INTERP_NORM_BITS); } /* * TODO: more accurate resampling */ void gl_resizeImage(unsigned char *dest,int xsize_dest,int ysize_dest, unsigned char *src,int xsize_src,int ysize_src) { unsigned char *pix,*pix_src; float x1,y1,x1inc,y1inc; int xi,yi,j,xf,yf,x,y; pix=dest; pix_src=src; x1inc=(float) (xsize_src - 1) / (float) (xsize_dest - 1); y1inc=(float) (ysize_src - 1) / (float) (ysize_dest - 1); y1=0; for(y=0;y> FRAC_BITS; yi=y1 >> FRAC_BITS; pix1=pix_src+(yi*xsize_src+xi)*3; pix[0]=pix1[0]; pix[1]=pix1[1]; pix[2]=pix1[2]; pix+=3; x1+=x1inc; } y1+=y1inc; } }