diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-25 20:38:14 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-25 20:38:14 +0000 |
commit | 14528e299a505570b2d5fc032a65efd8e588aa6b (patch) | |
tree | 663e42cdeca0b9b5aeda80d5dff7c3d6da5a6a92 /libvo/font_load.c | |
parent | 89b069cae33814d8faf3265edb1fc39164316690 (diff) | |
download | mpv-14528e299a505570b2d5fc032a65efd8e588aa6b.tar.bz2 mpv-14528e299a505570b2d5fc032a65efd8e588aa6b.tar.xz |
font alpha resampling, see -ffactor
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@216 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/font_load.c')
-rw-r--r-- | libvo/font_load.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/libvo/font_load.c b/libvo/font_load.c index 31ddf3613d..9c5f521a72 100644 --- a/libvo/font_load.c +++ b/libvo/font_load.c @@ -32,7 +32,7 @@ raw_file* load_raw(char *name){ return raw; } -font_desc_t* read_font_desc(char* fname){ +font_desc_t* read_font_desc(char* fname,float factor){ unsigned char sor[1024]; unsigned char sor2[1024]; font_desc_t *desc; @@ -174,6 +174,25 @@ for(i=0;i<=fontdb;i++){ printf("font: Missing bitmap(s) for sub-font #%d\n",i); return NULL; } + if(factor!=1.0f){ + // re-sample alpha + int f=factor*256.0f; + int size=desc->pic_a[i]->w*desc->pic_a[i]->h; + int j; + printf("font: resampling alpha by factor %5.3f (%d) ",factor,f);fflush(stdout); + for(j=0;j<size;j++){ + int x=desc->pic_a[i]->bmp[j]; + int y=desc->pic_b[i]->bmp[j]; + + x=((x*f*(255-y))>>16)+y; + //x=(x*f)>>8;if(x<y) x=y; + + if(x<0) x=0; else + if(x>255) x=255; + desc->pic_a[i]->bmp[j]=x; + } + printf("DONE!\n"); + } if(!desc->height) desc->height=desc->pic_a[i]->h; } |