当前位置: 首页 > news >正文

做网站有哪些需求it外包人员最后什么下场

做网站有哪些需求,it外包人员最后什么下场,怎样建淘宝客网站,吴江做网站本实理论上支持24位图和32位图#xff0c;实际上只测试了24位。原理很简单#xff0c;就是RGB中的蓝色字节和红色字节交换。 测试代码1#xff1a; #include stdio.h #include unistd.h #include sys/stat.h #include stdlib.h #include 实际上只测试了24位。原理很简单就是RGB中的蓝色字节和红色字节交换。 测试代码1 #include stdio.h #include unistd.h #include sys/stat.h #include stdlib.h #include sys/types.h #include fcntl.h #include errno.h #include sys/ioctl.h #include linux/videodev2.h #include sys/mman.h #include string.h #include stdint.h #include jpeglib.h#define _DEBUG_INFO #ifdef _DEBUG_INFO #define DEBUG_INFO(format, ...) printf(%s:%d -- format\n \ ,__func__,__LINE__ \ , ##__VA_ARGS__) #else #define DEBUG_INFO(format, ...) #endif//Gray 0.30 * R 0.59 * G 0.11 * B uint8_t rgb888_to_gray(uint8_t r,uint8_t g,uint8_t b){return (uint8_t)(0.3 *(float)r 0.59 * (float)g 0.11 * (float)b); }typedef uint16_t WORD; typedef uint32_t DWORD; #pragma pack(1) typedef struct tagBITMAPFILEHEADER{WORD bfType;//2DWORD bfSize;//4WORD bfReserved1;//2WORD bfReserved2;//2DWORD bfOffBits;//4 } BITMAPFILEHEADER; #pragma pack() typedef int32_t LONG; #pragma pack(1) typedef struct tagBITMAPINFOHEADER{DWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant; } BITMAPINFOHEADER; int main(int argc, char **argv) {char *filename RGB.bmp;int fd open(filename , O_RDONLY);if(fd 0){perror(open:);return -1;}struct tagBITMAPFILEHEADER * bit_map_file_header malloc(sizeof(struct tagBITMAPFILEHEADER));struct tagBITMAPINFOHEADER * bit_map_info_header malloc(sizeof(struct tagBITMAPINFOHEADER));DEBUG_INFO(%d %d,sizeof(struct tagBITMAPFILEHEADER),sizeof(struct tagBITMAPINFOHEADER));if(bit_map_file_header NULL || bit_map_info_header NULL){perror(malloc:);return -1;}//读取bmp的头信息read(fd , bit_map_file_header , 14);if(bit_map_file_header-bfType ! 0x4D42){DEBUG_INFO(这不是BMP图片);return -1;}DEBUG_INFO(bfOffBits %d,bit_map_file_header-bfOffBits);read(fd , bit_map_info_header , 40);DEBUG_INFO(width %d,height %d,biBitCount %d\n , bit_map_info_header-biWidth , bit_map_info_header-biHeight,bit_map_info_header-biBitCount);if(bit_map_info_header-biBitCount 24){DEBUG_INFO(仅支持24位和32位的BMP图片);return -1;}if(bit_map_info_header-biWidth 0){bit_map_info_header-biWidth abs(bit_map_info_header-biWidth);}if(bit_map_info_header-biHeight 0){bit_map_info_header-biHeight abs(bit_map_info_header-biHeight);}DEBUG_INFO(width %d,%d,biBitCount %d\n , bit_map_info_header-biWidth , bit_map_info_header-biHeight,bit_map_info_header-biBitCount);// return 0;int bmp_data_len bit_map_info_header-biWidth * bit_map_info_header-biHeight * bit_map_info_header-biBitCount;DEBUG_INFO(bmp_data_len %d,bmp_data_len);unsigned char *bmp_buf malloc(bmp_data_len);if(bmp_buf NULL){DEBUG_INFO(malloc error);return -1;}int ret read(fd,bmp_buf,bmp_data_len);if(ret 0){DEBUG_INFO(read error);return -1;}//把RGB转换成BGR就是调用R和G的位置int index 0;unsigned char tmp;while(bmp_data_len index){tmp bmp_buf[index 0];bmp_buf[index 0] bmp_buf[index 2];bmp_buf[index 2] tmp;index (bit_map_info_header-biBitCount 3);}int bgr_bmp_fd open(BGR.bmp,O_WRONLY | O_TRUNC | O_CREAT,0660);if(fd 0){perror(open:);return -1;}write(bgr_bmp_fd,bit_map_file_header,sizeof(struct tagBITMAPFILEHEADER));write(bgr_bmp_fd,bit_map_info_header,sizeof(struct tagBITMAPINFOHEADER));write(bgr_bmp_fd,bmp_buf,bmp_data_len);close(bgr_bmp_fd);close(fd);free(bmp_buf);return 0; } 调试信息 测试结果 左边是转换之前右边是转换之后。 由调试信息可知选取的图片是720X336也就是行4字节对齐的。换成721X336的图片,测试结果如下果然出错了。  测试代码2 修改后的颜色转换部分如下所示这里主要解决了行4字节对齐的问题。 #include stdio.h #include unistd.h #include sys/stat.h #include stdlib.h #include sys/types.h #include fcntl.h #include errno.h #include sys/ioctl.h #include linux/videodev2.h #include sys/mman.h #include string.h #include stdint.h #include jpeglib.h#define _DEBUG_INFO #ifdef _DEBUG_INFO #define DEBUG_INFO(format, ...) printf(%s:%d -- format\n \ ,__func__,__LINE__ \ , ##__VA_ARGS__) #else #define DEBUG_INFO(format, ...) #endif//Gray 0.30 * R 0.59 * G 0.11 * B uint8_t rgb888_to_gray(uint8_t r,uint8_t g,uint8_t b){return (uint8_t)(0.3 *(float)r 0.59 * (float)g 0.11 * (float)b); }typedef uint16_t WORD; typedef uint32_t DWORD; #pragma pack(1) typedef struct tagBITMAPFILEHEADER{WORD bfType;//2DWORD bfSize;//4WORD bfReserved1;//2WORD bfReserved2;//2DWORD bfOffBits;//4 } BITMAPFILEHEADER; #pragma pack() typedef int32_t LONG; #pragma pack(1) typedef struct tagBITMAPINFOHEADER{DWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant; } BITMAPINFOHEADER; char *src_file_name RGB2.bmp; char *dst_file_name BGR2.bmp;int main(int argc, char **argv) {int fd open(src_file_name , O_RDONLY);if(fd 0){perror(open:);return -1;}struct tagBITMAPFILEHEADER * bit_map_file_header malloc(sizeof(struct tagBITMAPFILEHEADER));struct tagBITMAPINFOHEADER * bit_map_info_header malloc(sizeof(struct tagBITMAPINFOHEADER));DEBUG_INFO(%d %d,sizeof(struct tagBITMAPFILEHEADER),sizeof(struct tagBITMAPINFOHEADER));if(bit_map_file_header NULL || bit_map_info_header NULL){perror(malloc:);return -1;}//读取bmp的头信息read(fd , bit_map_file_header , 14);if(bit_map_file_header-bfType ! 0x4D42){DEBUG_INFO(这不是BMP图片);return -1;}DEBUG_INFO(biSizebfOffBits %d,bfSize %d,bit_map_file_header-bfOffBits,bit_map_file_header-bfSize);read(fd , bit_map_info_header , 40);DEBUG_INFO(biSize %d,width %d,height %d,biBitCount %d,biPlanes %d,\n\biCompression %d,biSizeImage %d,\n\biXPelsPerMeter %d,biYPelsPerMeter %d,\n\biClrUsed %d,biClrImportant %d\n , bit_map_info_header-biSize,bit_map_info_header-biWidth , bit_map_info_header-biHeight,bit_map_info_header-biBitCount,bit_map_info_header-biPlanes,bit_map_info_header-biCompression,bit_map_info_header-biSizeImage,bit_map_info_header-biXPelsPerMeter,bit_map_info_header-biYPelsPerMeter,bit_map_info_header-biClrUsed,bit_map_info_header-biClrImportant);if(bit_map_info_header-biBitCount 24){DEBUG_INFO(仅支持24位和32位的BMP图片);return -1;}if(bit_map_info_header-biWidth 0){bit_map_info_header-biWidth abs(bit_map_info_header-biWidth);}if(bit_map_info_header-biHeight 0){bit_map_info_header-biHeight abs(bit_map_info_header-biHeight);}DEBUG_INFO(width %d,%d,biBitCount %d\n , bit_map_info_header-biWidth , bit_map_info_header-biHeight,bit_map_info_header-biBitCount);// return 0;unsigned char *bmp_buf malloc(bit_map_file_header-bfSize);unsigned char *dst_bmp_buf malloc(bit_map_file_header-bfSize);if(bmp_buf NULL){DEBUG_INFO(malloc error);return -1;}int ret read(fd,bmp_buf,bit_map_file_header-bfSize - 54);if(ret 0){DEBUG_INFO(read error);return -1;}int w bit_map_info_header-biWidth;int h bit_map_info_header-biHeight;int biBitCount bit_map_info_header-biBitCount;int color_byte biBitCount/8;int offset_step;if((w * color_byte)%4){offset_step ((w*color_byte)/41)*4;}else{offset_step w*color_byte;}DEBUG_INFO(offset_step %d,offset_step);//把RGB转换成BGR就是调用R和G的位置int index 0;unsigned char tmp;int offset 0;DEBUG_INFO(color_byte %d,color_byte);int line0;for(int i 0 ; i h; i){for(int j 0 ; j w ; j){int index offset j * color_byte;tmp bmp_buf[index 0 ];bmp_buf[index 0 ] bmp_buf[index 2 ];bmp_buf[index 2 ] tmp; }offset offset_step;}int bgr_bmp_fd open(dst_file_name,O_WRONLY | O_TRUNC | O_CREAT,0660);if(fd 0){perror(open:);return -1;}write(bgr_bmp_fd,bit_map_file_header,sizeof(struct tagBITMAPFILEHEADER));write(bgr_bmp_fd,bit_map_info_header,sizeof(struct tagBITMAPINFOHEADER));write(bgr_bmp_fd,bmp_buf,bit_map_file_header-bfSize - 54);close(bgr_bmp_fd);close(fd);free(bmp_buf);return 0; } 测试721x336,OK 在测一个571X673的效果还是不错的。 调试信息宽571高673行宽2284字节。 小结
http://www.yutouwan.com/news/431137/

相关文章:

  • 做自媒体一般都注册几个网站网线水晶头制作过程
  • 共享经济网站建设策划书沈阳工程建设招标网
  • 北京网站建设产品介绍个人网站 网站教程
  • 北京网站建设正邦南通网站建设制作
  • php网站建设论文外贸seo站
  • 高新手机网站建设价格iis 网站建设中
  • 网站做外链好嘛差差软件下载免费
  • 沈阳企业网站制作公司怎么制作网站表白
  • 免费开网店的平台有哪些福建百度seo排名点击软件
  • 福建省网站建设公司做网站那个程序好
  • 网站建设实习生怎么样如何做好网站的推广工作
  • 慧聚创新网站建设专门做水果的网站
  • 网上营销网站番禺网站建设制作
  • 顺德做网站shundeit网上自己怎么申请商标注册
  • dz论坛网站建设手机网站菜单
  • 做商品网站数据库有哪些内容报价单模板
  • 个人网站免费注册网络有限公司
  • 北京梵客家装官网seo网站营销
  • 做高仿网站防止服务器上的网站被进攻
  • 怎么在云主机上做网站简述网站规划的主要内容
  • 实验教学中心网站建设建站模板怎么选
  • 一个静态网站多少钱少儿图书销售网站开发背景
  • 程序员做彩票网站违法吗网站平台建立
  • 青岛做网站公wordpress全站腾讯云cdn
  • 企业网站颜色wordpress apply_filters
  • 男人直接做的视频网站免费推广平台排行
  • 重庆建网站诚选快忻科技悉心湖北黄石域名注册网站建设
  • 做电子签章登录哪个网站wordpress主题汉化实战
  • 英文网站怎么做wordpress rss 采集
  • 大连网站建设介绍德宏企业网站建设公司