资源简介
c语言 jpg转换bmp格式 不用任何库 无错误 正确运行
c语言 jpg转换bmp格式 不用任何库 无错误 正确运行
c语言 jpg转换bmp格式 不用任何库 无错误 正确运行
代码片段和文件信息
#include
#include
#include “xixi.h“
//#include “stdafx.h“
char *FileName = “image.jpg“;
extern char error_string[90];
typedef struct s_BM_header {
WORD BMP_id; // ‘B‘‘M‘
DWORD size; // size in bytes of the BMP file
DWORD zero_res; // 0
DWORD offbits; // 54
DWORD biSize; // 0x28
DWORD Width; // X
DWORD Height; // Y
WORD biPlanes; // 1
WORD biBitCount; // 24
DWORD biCompression; // 0 = BI_RGB
DWORD biSizeImage; // 0
DWORD biXPelsPerMeter; // 0xB40
DWORD biYPelsPerMeter; // 0xB40
DWORD biClrUsed; //0
DWORD biClrImportant; //0
} BM_header;
typedef struct s_RGB {
BYTE B;
BYTE G;
BYTE R;
} RGB;
void exitmessage(char *message)
{
printf(“%s\n“ message); exit(0);
}
void write_buf_to_BMP(BYTE *im_buffer WORD X_bitmap WORD Y_bitmap char *BMPname)
{
SWORD x y;
RGB *pixel;
BM_header BH;
FILE *fp_bitmap;
DWORD im_loc_bytes;
BYTE nr_fillingbytes i;
BYTE zero_byte = 0;
fopen_s(&fp_bitmap BMPname “wb“);
if (fp_bitmap == NULL) exitmessage(“File cannot be created“);
if (X_bitmap % 4 != 0) nr_fillingbytes = 4 - ((X_bitmap * 3L) % 4);
else nr_fillingbytes = 0;
BH.BMP_id = ‘M‘ * 256 + ‘B‘; fwrite(&BH.BMP_id 2 1 fp_bitmap);
BH.size = 54 + Y_bitmap*(X_bitmap * 3 + nr_fillingbytes); fwrite(&BH.size 4 1 fp_bitmap);
BH.zero_res = 0; fwrite(&BH.zero_res 4 1 fp_bitmap);
BH.offbits = 54; fwrite(&BH.offbits 4 1 fp_bitmap);
BH.biSize = 0x28; fwrite(&BH.biSize 4 1 fp_bitmap);
BH.Width = X_bitmap; fwrite(&BH.Width 4 1 fp_bitmap);
BH.Height = Y_bitmap; fwrite(&BH.Height 4 1 fp_bitmap);
BH.biPlanes = 1; fwrite(&BH.biPlanes 2 1 fp_bitmap);
BH.biBitCount = 24; fwrite(&BH.biBitCount 2 1 fp_bitmap);
BH.biCompression = 0; fwrite(&BH.biCompression 4 1 fp_bitmap);
BH.biSizeImage = 0; fwrite(&BH.biSizeImage 4 1 fp_bitmap);
BH.biXPelsPerMeter = 0xB40; fwrite(&BH.biXPelsPerMeter 4 1 fp_bitmap);
BH.biYPelsPerMeter = 0xB40; fwrite(&BH.biYPelsPerMeter 4 1 fp_bitmap);
BH.biClrUsed = 0; fwrite(&BH.biClrUsed 4 1 fp_bitmap);
BH.biClrImportant = 0; fwrite(&BH.biClrImportant 4 1 fp_bitmap);
printf(“Writing bitmap ...\n“);
im_loc_bytes = (DWORD)im_buffer + ((DWORD)Y_bitmap - 1)*X_bitmap * 4;
for (y = 0; y {
for (x = 0; x {
pixel = (RGB *)im_loc_bytes;
fwrite(pixel 3 1 fp_bitmap);
im_loc_bytes += 4;
}
for (i = 0; i fwrite(&zero_byte 1 1 fp_bitmap);
im_loc_bytes -= 2L * X_bitmap * 4;
}
printf(“Done.\n“);
fclose(fp_bitmap);
}
// Used markers:
#define SOI 0xD8
#define EOI 0xD9
#define APP0 0xE0
#define SOF 0xC0
#define DQT 0xDB
#define DHT 0xC4
#define SOS 0xDA
#define DRI 0xDD
#define COM 0xFE
char error_string[90];
//char err[90];
void exit_func(char *err) {
strcpy(error
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-03 16:49 C语言JPG转BMP\
文件 33036 2018-04-03 16:40 C语言JPG转BMP\xixi.c
文件 490 2018-04-03 16:03 C语言JPG转BMP\xixi.h
- 上一篇:8052单片机温度计程序
- 下一篇:exe全盘感染c++源码
相关资源
- C语言嵌入式Modbus协议栈,支持主站和
- C语言封装的HttpClient接口
- C语言课设计算器
- C语言 学生兴趣管理系统
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c语言实现竞技比赛打分系统
- KMP算法C语言程序
- Linux c语言 学生成绩管理系统
- 弹跳的小球(test.c)
- 林锐—高质量C编程
- 基于c语言的通讯录系统
- C语言全套课件与教学资料-哈工大
- 计算机二级C语言真题.docx
- C语言实现 设备信息管理系统
- GBT 28169-2011 嵌入式软件 C语言编码规范
- C语言标准库函数大全.chm
- C语言常用代码(分章节)
- c语言课程设计:客房登记系统源码
- C语言常用算法源代码
- 吕鑫:VS2015之博大精深的0基础C语言视
- c语言文都讲义2020
- c语言课件56883
- C语言推箱子win控制台
- C语言程序设计50例.docx
- 烟花优化算法(c语言版)
- C语言程序设计教材习题参考答案.do
- 数据结构(C语言版)ppt课件,清华,
- c语言编程经典例题100例 word版
- C语言编译器的设计与实现.doc
评论
共有 条评论