int main(int argc,char *argv[]) { char *txt={"Hello World"}; int wdt=400; int hgt=400; struct FrameBuffer *fb=NULL; struct FrameBufferFontDB *fontdb=NULL; struct FrameBufferFont *font; FILE *fontfp=NULL; char *fntdbfname=NULL; char *fontname="Times-Roman"; float fontsize=34.0; fntdbfname=getenv("FONTDB"); fontfp=fopen(fntdbfname,"r"); if (fontfp !=NULL) { fontdb=FrameBufferFontDBLoad(fontfp); fclose(fontfp); } if (fontdb==NULL) { fprintf(stderr,"Could not load fonts.\n"); exit(-1); } fb=FrameBufferMake("image",wdt,hgt,24); font=FrameBufferFontDBFind(fontdb,fontname,fontsize); FrameBufferText(fb,NULL,font,20,200,strlen(txt), txt,0xffffffff,0x0f,1,NULL); FrameBufferSavePPM(fb,stdout); FrameBufferFree(fb); FrameBufferFontDBFree(fontdb); return 0; }
int SplotPlotStart(struct Splot *ptr,char *name, float wdt,float hgt,int depth) { if (ptr==NULL) return -1; if (ptr->ps.ptr !=NULL) PostScriptPlotStart(ptr->ps.ptr); if (ptr->fb.ptr !=NULL) { struct FrameBuffer *img=NULL; img=*(ptr->fb.ptr); if (img !=NULL) FrameBufferFree(img); img=FrameBufferMake(name,wdt,hgt,depth); if (img==NULL) return -1; *(ptr->fb.ptr)=img; FrameBufferClear(img,ptr->fb.bgcolor,0x0f); } return 0; }
int main(int argc,char *argv[]) { int arg=0; FILE *fp; struct FrameBuffer *src=NULL; struct FrameBuffer *dst=NULL; unsigned int bgcolor=0; char *bgtxt=NULL; unsigned alpha=0; unsigned char help=0; unsigned char option=0; OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"bgcol",'t',&bgtxt); OptionAdd(&opt,"alpha",'x',&alpha); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (arg<argc) { fp=fopen(argv[arg],"r"); if (fp==NULL) { fprintf(stderr,"Error opening file.\n"); exit(-1); } } else fp=stdin; bgcolor=FrameBufferColor(0x00,0x00,0x00,0x00); if (bgtxt !=NULL) { sscanf(bgtxt,"%x",&bgcolor); } while ((src=FrameBufferLoadPNG(fp,"image")) !=NULL) { if (bgcolor !=0) { if (dst==NULL) { dst=FrameBufferMake(NULL,src->wdt,src->hgt,24); if (dst==NULL) { fprintf(stderr,"Error creating image.\n"); exit(-1); } } FrameBufferClear(dst,bgcolor,0x0f); FrameBufferImage(dst,NULL,src,0x0f,0,0,0,NULL); if (alpha==0) FrameBufferSavePPM(dst,stdout); else FrameBufferSavePPMAlpha(dst,stdout); } else { if (alpha==0) FrameBufferSavePPM(src,stdout); else FrameBufferSavePPMAlpha(src,stdout); } FrameBufferFree(src); src=NULL; } if (arg<argc) fclose(fp); return 0; }
int main(int argc,char *argv[]) { int arg=0; FILE *fp; struct FrameBuffer *src=NULL; struct FrameBuffer *dst=NULL; struct FrameBufferMatrix m; unsigned char sflg=0; float wdt=-1; float hgt=-1; float sf=1.0; unsigned char help=0; unsigned char option=0; OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"smooth",'x',&sflg); OptionAdd(&opt,"wdt",'f',&wdt); OptionAdd(&opt,"hgt",'f',&hgt); OptionAdd(&opt,"sf",'f',&sf); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (arg<argc) { fp=fopen(argv[arg],"r"); if (fp==NULL) { fprintf(stderr,"Error opening file.\n"); exit(-1); } } else fp=stdin; while ((src=FrameBufferLoadPPMX(fp)) !=NULL) { if (dst==NULL) { if ((wdt==-1) && (hgt==-1)) { wdt=src->wdt*sf; hgt=src->hgt*sf; } else if (wdt==-1) { wdt=src->wdt*hgt/src->hgt; } else if (hgt==-1) { hgt=src->hgt*wdt/src->wdt; } if ((wdt==0) || (hgt==0)) { fprintf(stderr,"Invalid image size.\n"); exit(-1); } dst=FrameBufferMake(NULL,wdt,hgt,src->depth); } if ((wdt==src->wdt) && (hgt==src->hgt)) FrameBufferImage(dst,NULL,src,0xf0,0,0,0,NULL); else { float xsc=wdt/src->wdt; float ysc=hgt/src->hgt; m.a=xsc; m.b=0; m.c=0; m.d=ysc; FrameBufferImage(dst,&m,src,0xf0,0,0,sflg,NULL); } FrameBufferSavePPMX(dst,stdout); FrameBufferFree(src); src=NULL; } if (arg<argc) fclose(fp); return 0; }
int main(int argc,char *argv[]) { unsigned int color=0; unsigned int alpha=255; unsigned char nonzero=0; int arg=0; int c=0,v=0; FILE *fp=NULL; FILE *afp=NULL; char *name=NULL; char *atxt=NULL; char *afname=NULL; struct FrameBuffer *img=NULL; struct FrameBuffer *msk=NULL; unsigned char help=0; unsigned char option=0; OptionAdd(&opt,"-help",'x',&help); OptionAdd(&opt,"-option",'x',&option); OptionAdd(&opt,"name",'t',&name); OptionAdd(&opt,"alpha",'t',&atxt); OptionAdd(&opt,"afname",'t',&afname); OptionAdd(&opt,"nz",'x',&nonzero); arg=OptionProcess(1,argc,argv,&opt,NULL); if (help==1) { OptionPrintInfo(stdout,hlpstr); exit(0); } if (option==1) { OptionDump(stdout,&opt); exit(0); } if (arg<argc) { fp=fopen(argv[arg],"r"); if (fp==NULL) { fprintf(stderr,"Error opening file.\n"); exit(-1); } } else fp=stdin; if (afname !=NULL) { afp=fopen(afname,"r"); if (afp==NULL) { fprintf(stderr,"Error opening alpha file.\n"); exit(-1); } } if (atxt !=NULL) { int alen; alen=strlen(atxt); if ((alen>2) && (atxt[0]=='0') && (atxt[1]=='x')) sscanf(atxt+2,"%x",&alpha); else if (atxt[alen-1]=='%') { float aflt; atxt[alen-1]=0; sscanf(atxt,"%g",&aflt); if (aflt<0) aflt=0; if (aflt>100) aflt=100; alpha=255*aflt/100.0; } else alpha=atoi(atxt); if (alpha>255) alpha=255; } color=FrameBufferColor(0,0,0,alpha); while ((img=FrameBufferLoadPPM(fp,name)) !=NULL) { if (afp !=NULL) msk=FrameBufferLoadPPM(afp,name); FrameBufferClear(img,color,0x08); if (nonzero) { for (c=0;c<img->wdt*img->hgt;c++) { v=img->img[c]+img->img[c+img->wdt*img->wdt]+ img->img[c+2*img->wdt*img->wdt]; if (v==0) img->msk[c]=0; } } if (msk !=NULL) memcpy(img->msk,msk->img,img->wdt*img->hgt); FrameBufferSavePNG(img,stdout); FrameBufferFree(img); if (msk !=NULL) FrameBufferFree(msk); img=NULL; msk=NULL; } return 0; }
int GrplotRawKey(struct Plot *ptr, float ox,float oy,float wdt,float hgt, double min,double max, double tick_major,double tick_minor, float major_size,float minor_size, float txt_off,float ttl_off, int tick_flg,int txt_flg,int ttl_flg, int txt_or,int ttl_or, int or, int ttl_num,char *ttl_text, int (*text_box)(char *,float,int,char *,float *,void *), void *boxdata, char * (*make_text)(double,double,double,void *), void *textdata, char *fntname,float fntsze, unsigned int color,unsigned char mask,float width, int ksze,unsigned char *a, unsigned char *r,unsigned char *g,unsigned char *b) { int s=0; int i=0,j=0; int kwdt=0,khgt=0; struct FrameBuffer *img=NULL; if (ptr==NULL) return -1; if (text_box==NULL) return -1; if (fntname==NULL) return -1; if (fntsze==0) return -1; if (ksze==0) return -1; kwdt=ksze; khgt=ksze; if (or==0) img=FrameBufferMake(NULL,kwdt,ksze,24); else img=FrameBufferMake(NULL,ksze,khgt,24); if (img==NULL) return -1; if (or==0) { for (i=0;i<ksze;i++) { for (j=0;j<kwdt;j++) { if (a !=NULL) img->msk[(ksze-1-i)*kwdt+j]=a[i]; if (r !=NULL) img->img[(ksze-1-i)*kwdt+j]=r[i]; if (g !=NULL) img->img[ksze*kwdt+(ksze-1-i)*kwdt+j]=g[i]; if (b !=NULL) img->img[2*ksze*kwdt+(ksze-1-i)*kwdt+j]=b[i]; } } } else { for (i=0;i<ksze;i++) { for (j=0;j<khgt;j++) { if (a !=NULL) img->msk[j*ksze+i]=a[i]; if (r !=NULL) img->img[j*ksze+i]=r[i]; if (g !=NULL) img->img[ksze*khgt+j*ksze+i]=g[i]; if (b !=NULL) img->img[2*ksze*khgt+j*ksze+i]=b[i]; } } } s=GrplotRawFitImage(ptr,ox,oy,wdt,hgt,img,mask); if (s==0) s=GrplotRawPanel(ptr,ox,oy,wdt,hgt,color,mask,width); if (or==0) { if (s==0) s=GrplotRawYaxis(ptr,ox,oy,wdt,hgt, min,max,tick_major,tick_minor,major_size,minor_size, tick_flg,color,mask,width); if ((s==0) && (make_text !=NULL)) s=GrplotRawYaxisLabel(ptr,ox,oy,wdt,hgt,min,max,tick_major,txt_off, txt_flg,txt_or,text_box,boxdata, make_text,textdata,fntname,fntsze,color,mask); } else { if (s==0) s=GrplotRawXaxis(ptr,ox,oy,wdt,hgt, min,max,tick_major,tick_minor,major_size,minor_size, tick_flg,color,mask,width); if ((s==0) && (make_text !=NULL)) s=GrplotRawXaxisLabel(ptr,ox,oy,wdt,hgt,min,max,tick_major,txt_off, txt_flg,txt_or,text_box,boxdata, make_text,textdata,fntname,fntsze,color,mask); } if ((s==0) && (ttl_text !=NULL) && (ttl_num !=0)) s=GrplotRawYaxisTitle(ptr,ox,oy,wdt,hgt,ttl_off,ttl_flg,ttl_or, text_box,boxdata, ttl_num,ttl_text,fntname,fntsze,color,mask); FrameBufferFree(img); return s; }