#include "canvas.h" #include #include #include "FImage.h" #include "geo.h" #include /*************************************************************************** J S A M P L E B U F F ***************************************************************************/ void jsamplebuff(GLCanvas *canvas) /*!*/ { int i; printf ("buffer size %d \n",canvas->height * canvas->width * 3 +1); /*canvas->buffer= (unsigned char *)malloc(canvas->height * canvas->width * 3 +1);*/ canvas->buffer= (unsigned char *)malloc(512*512 * 3 +1); if (canvas->buffer==NULL) { perror("Failed malloc"); exit(2); } for (i=0;iheight * canvas->width ; i++) { canvas->buffer[i*3+0]=canvas->pixels[i] & 0xFF; canvas->buffer[i*3+1]=(canvas->pixels[i] & 0xFF00)>> 8; canvas->buffer[i*3+2]=(canvas->pixels[i] & 0xFF0000) >> 16; } } void FindBlocks(FImage *fi) /*!*/ { int dc; float val; if (fi==NULL) return; printf ("into findblocks"); printf ("%d %d \n",fi->fXSize, fi->fYSize); for (int y=0;(y+7)<(fi->fYSize);y=y+8) for (int x=0;(x+7)<(fi->fXSize);x=x+8) { dc=1; val= fi->Pix(x,y); for (int j=0;j<8;j++) for (int i=0;i<8;i++) { if (!(fabs(fi->Pix(x+i,y+j) - val)<0.5) ) dc=0; } if (dc) for (j=0;j<8;j++) for (i=0;i<8;i++) fi->Pix(x+i,y+j)=0.0; } printf ("exit findblocks\n"); } /*************************************************************************** D R A W C A N V A S ***************************************************************************/ void findBlocks(GLCanvas *canvas) /*!*/ { int i; int j; int k,l; int r,g,b; long rgba; long currgba; int ok; int dconly; return; for (i=0;i+7<=canvas->width;i+=8) for(j=0;j+7<=canvas->height;j+=8) { dconly=1; rgba=*(canvas->pixels + canvas->width*i + j); for (k=0;k<8 && ok;k++) for (l=0;l<8 && ok;l++) { currgba=*(canvas->pixels + canvas->width*(i+k)+j+l); dconly=dconly && (rgba==currgba); } if (!dconly) { for (k=0;k<8 && ok;k++) for (l=0;l<8 && ok;l++) { *(canvas->pixels+canvas->width*(i+k)+j+l)=0x8F8F8F8F; } } } /*lrectwrite(0, 0, canvas->width-1,*/ /* canvas->height-1, (unsigned long *)canvas->pixels);*/ }