你的位置:首页 > 软件开发 > 操作系统 > 文件浏览器及数码相框

文件浏览器及数码相框

发布时间:2016-03-26 12:00:16
例子 #include <stdio.h>#include <string.h>#include <math.h>#include <ft2build.h>#include FT_FREETYPE_H#define WIDTH 8 ...

文件浏览器及数码相框

 

例子

#include <stdio.h>#include <string.h>#include <math.h>#include <ft2build.h>#include FT_FREETYPE_H#define WIDTH  80#define HEIGHT 80/* origin is the upper left corner */unsigned char image[HEIGHT][WIDTH];/* Replace this function with something useful. */voiddraw_bitmap( FT_Bitmap* bitmap,       FT_Int   x,       FT_Int   y){ FT_Int i, j, p, q; FT_Int x_max = x + bitmap->width; FT_Int y_max = y + bitmap->rows; for ( i = x, p = 0; i < x_max; i++, p++ ) {  for ( j = y, q = 0; j < y_max; j++, q++ )  {   if ( i < 0   || j < 0    ||      i >= WIDTH || j >= HEIGHT )    continue;   image[j][i] |= bitmap->buffer[q * bitmap->width + p];  } }}voidshow_image( void ){ int i, j; for ( i = 0; i < HEIGHT; i++ ) {  for ( j = 0; j < WIDTH; j++ )   putchar( image[i][j] == 0 ? ' '                : image[i][j] < 128 ? '+'                          : '*' );  putchar( '\n' ); }}intmain( int   argc,   char** argv ){ FT_Library  library; FT_Face    face; FT_GlyphSlot slot; FT_Matrix   matrix;         /* transformation matrix */ FT_Vector   pen;          /* untransformed origin */ FT_Error   error; char*     filename; char*     text; double    angle; int      target_height; int      n, num_chars; if ( argc != 3 ) {  fprintf ( stderr, "usage: %s font sample-text\n", argv[0] );  exit( 1 ); } filename   = argv[1];              /* first argument   */ text     = argv[2];              /* second argument  */ num_chars   = strlen( text ); angle     = ( 0.0 / 360 ) * 3.14159 * 2;   /* use 25 degrees   */ target_height = HEIGHT; error = FT_Init_FreeType( &library );       /* initialize library */ /* error handling omitted */ error = FT_New_Face( library, argv[1], 0, &face ); /* create face object */ /* error handling omitted */#if 0 /* use 50pt at 100dpi */ error = FT_Set_Char_Size( face, 50 * 64, 0,              100, 0 );        /* set character size */  /* pixels = 50 /72 * 100 = 69 个像素点*/#else  FT_Set_Pixel_Sizes(face, 24, 0);#endif /* error handling omitted */ slot = face->glyph; /* set up matrix */ matrix.xx = (FT_Fixed)( cos( angle ) * 0x10000L ); matrix.xy = (FT_Fixed)(-sin( angle ) * 0x10000L ); matrix.yx = (FT_Fixed)( sin( angle ) * 0x10000L ); matrix.yy = (FT_Fixed)( cos( angle ) * 0x10000L ); /* the pen position in 26.6 cartesian space coordinates; */ /* start at (0,40) relative to the upper left corner */ pen.x = 0 * 64; pen.y = ( target_height - 40 ) * 64; for ( n = 0; n < num_chars; n++ ) {  /* set transformation */  FT_Set_Transform( face, &matrix, &pen );  /* load glyph image into the slot (erase previous one) */  error = FT_Load_Char( face, text[n], FT_LOAD_RENDER );  if ( error )   continue;         /* ignore errors */  /* now, draw to our target surface (convert position) */  draw_bitmap( &slot->bitmap,         slot->bitmap_left,         target_height - slot->bitmap_top );  /* increment pen position */  pen.x += slot->advance.x;  pen.y += slot->advance.y; } show_image(); FT_Done_Face  ( face ); FT_Done_FreeType( library ); return 0;}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:文件浏览器及数码相框

关键词:浏览器

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。