¶ÔÓÚ¸Õ½Ó´¥Êý×ÖͼÏñµÄͬѧ,Ó¦¸Ã¶¼ÓÐÒ»¸öÒÉÎÊ,ÈçºÎ°ÑÒ»¸öBMP¸ñʽµÄͼÏñÓô¿CÓïÑÔ¶ÁÈëÄØ,ÎÒÏàÐÅÕâÒ²ÊÇÊý×ÖͼÏñ´¦ÀíµÄµÚÒ»²½,Èç¹ûÓÐÐÒ¿´µ½ÕâƪÎĵµ,ÎÒ¾ÍÓÐÐҵijÉΪÄãÊý×ÖͼÏñ´¦Àí·ÉϵĵÚÒ»ÕµÃ÷µÆ!
Õâ¾ÍÊÇBMPͼÏñµÄÀíÂÛ֪ʶ,Óиö´ó¸ÅµÄÁ˽â¾ÍÐÐ,×îÖ÷ÒªµÄÊÇ´ÓÀíÂÛµ½Êµ¼ù!!!
·Ï»°²»¶à˵,Ö±½ÓÉϸɻõ¡£
¶¨ÒåÍ·ÎļþΪ¡°bmp.h¡±,¶¨Òåread_bmpº¯ÊýΪ¶Áº¯Êý,write_bmpº¯ÊýΪдº¯Êý
¶Ábmpͼ
#include <stdlib.h>
#include <math.h>
#include <Windows.h>
#include "bmp.h"
/*´æ´¢ÔͼµÄÏñËØ¿í¶È¸ß¶ÈºÍλͼÉî¶È*/
FILE* fpbmp;
FILE* fpout;
unsigned char* fpBmpHeader; //λͼͷ
unsigned char* fpFileHeader; //λͼÐÅÏ¢
RGBQUAD* pColorTable; //BMP µ÷É«°å
int read_bmp(const char* path, unsigned char *pBmpBuf,int *Width,int *Height,int * bitCount)
{
fpbmp = fopen(path, "rb");//pathΪͼÏñ·¾¶
unsigned short s;
fread(&s, 1, 2, fpbmp);
//Åж϶ÁÈëµÄͼÏñÊÇ·ñΪBMPͼ ×Ö·û´®"BM"=19778
if (s == 19778)
{
printf("Open bmp success!!!\n");
}
else
{
printf("Open bmp fail!!!\n");
return -1;
}
fseek(fpbmp, 0, SEEK_SET);
BITMAPFILEHEADER fileHead;
fread(&fileHead, sizeof(BITMAPFILEHEADER), 1, fpbmp);
BITMAPINFOHEADER infoHead;
fread(&infoHead, sizeof(BITMAPINFOHEADER), 1, fpbmp);
*Width = infoHead.biWidth;//ͼÏñµÄ¿í
*Height = infoHead.biHeight;//ͼÏñµÄ¸ß
*bitCount = infoHead.biBitCount;
int lineByte = (*Width * *bitCount / 8 + 3) / 4 * 4;
fseek(fpbmp, sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD),SEEK_SET);
fread(pBmpBuf, lineByte * *Height, 1, fpbmp);//pBmpBufΪͼÏñµÄRGBÊý¾Ý,Ò²ÊÇÎÒÃǽ«Òª´¦ÀíµÄÊý¾Ý
return 0;
}
дBMPͼ
int write_bmp(unsigned char* img, int* Width, int* Height, int* bitCount)
{
fpout = fopen("out.bmp", "wb+");
if (fpbmp == NULL)
{
printf("read bmp failed!!!\n");
return -1;
}
int lineByte = (*Width * *bitCount / 8 + 3) / 4 * 4;
if (lineByte == 0)
{
printf("err");
return -1;
}
fpFileHeader = new unsigned char[(sizeof(BITMAPFILEHEADER))];
fseek(fpbmp, 0, SEEK_SET); //¶¨Î»Ôͼ Æ«ÒÆλÖÃ
fseek(fpout, 0, SEEK_SET); //¶¨Î»ÐÂͼ Æ«ÒÆλÖÃ
fread(fpFileHeader, 1, sizeof(BITMAPFILEHEADER), fpbmp);
fwrite(fpFileHeader, 1, sizeof(BITMAPFILEHEADER), fpout);
/*¸´ÖÆÔͼÖРλͼ ÐÅÏ¢µ½ÐÂͼÏñ*/
fpBmpHeader = new unsigned char[(sizeof(BITMAPINFOHEADER))];
fseek(fpbmp, sizeof(BITMAPFILEHEADER), SEEK_SET);
fseek(fpout, sizeof(BITMAPFILEHEADER), SEEK_SET);
fread(fpBmpHeader, 1, sizeof(BITMAPINFOHEADER), fpbmp);
fwrite(fpBmpHeader, 1, sizeof(BITMAPINFOHEADER), fpout);
/*Copy µ÷É«°å info*/
pColorTable = new RGBQUAD[256];
fseek(fpbmp, sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER), SEEK_SET);
fseek(fpout, sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER), SEEK_SET);
fread(pColorTable, sizeof(RGBQUAD), 256, fpbmp);
fwrite(pColorTable, sizeof(RGBQUAD), 256, fpout);
fseek(fpout, sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD), SEEK_SET);
fwrite(img, lineByte * *Height, sizeof(char), fpout);
fclose(fpout);
fclose(fpbmp);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <Windows.h>
#include "bmp.h"
int main()
{
int width, height, bitCount = 0;
unsigned char* pBmpBuf = (unsigned char*)malloc(1000 * 1000 * 3);//ÉêÇë¿Õ¼ä
const char* path = "D:\\test\\read_bmp_image\\1-B.bmp";//ͼµÄ·¾¶
read_bmp(path, pBmpBuf, &width, &height, &bitCount);
write_bmp(pBmpBuf, &width, &height, &bitCount);
}
×ܽá,½«read_bmpº¯Êý·µ»ØµÄpBmpBuf²ÎÊý,¸³Öµ¸øwrite_bmpº¯ÊýµÄimg²ÎÊý,¾ÍʵÏÖÁËBMPͼ´Ó¶Áµ½Ð´µÄÈ«²¿¹ý³Ì,ÓÐÐËȤµÄͬѧ¶¯ÊÖʵ¼ùÏÂ,»áÓÐÒâÏò²»µ½µÄÊÕ»ñ¡£
×¢:ÔÚÏßת»»BMPͼµÄÍøÖ·,¿ÉÒÔ½«ÈκθñʽµÄÕÕƬת»»ÎªBMP¸ñʽ¡£ÇײâºÃÓá£Á´½Ó·îÉÏBMPͼÏñת»»ÍøÖ·
±¾ÎÄʵÀý½²ÊöÁËAJAX+ServletʵÏÖµÄÊý¾Ý´¦ÀíÏÔʾ¹¦ÄÜ¡£·ÖÏí¸ø´ó¼Ò¹©´ó¼Ò²Î¿¼£¬¾ß...
±¾ÎÄתÔØ×Ô΢ÐŹ«Öںš¸SHµÄÈ«Õ»±Ê¼Ç¡¹£¬×÷ÕßSH¡£×ªÔر¾ÎÄÇëÁªÏµSHµÄÈ«Õ»±Ê¼Ç¹«...
À´Ô´£ºDeepenStudy ©¶´Îļþ£ºjs.asp % Dimoblog setoblog=newclass_sys oblog.a...
idea¹Ù·½ÍÆËÍÁË2020.2.4°æ±¾µÄ¸üУ¬ÄÇô´ó¼Ò×î¹ØÐĵÄÎÊÌâÀ´ÁË£¬Ö®Ç°¼¤»îidea202...
´ó¼ÒºÃ£¬ÎÒÊÇ¿ñÁľý¡£ ½ñÌìÀ´ÁÄÒ»ÁÄ Mysql »º´æ³ØÔÀí¡£ Ìá¸Ù¸½ÉÏ£¬»°²»¶à˵£¬Ö±...
ÔÚFlash Player 10.1¼°ÒÔÉÏ°æ±¾ÖУ¬adobeÐÂÔöÁËÈ«¾Ö´íÎó´¦Àí³ÌÐòUncaughtErrorEv...
CKeditor£¬ÒÔÇ°½ÐFCKeditor£¬ÒѾʹÓùýºÃ¶àÄêÁË£¬¹¦ÄÜ×ÔȻûµÄ˵¡£×î½üÉý¼¶µ½3....
±¾ÎÄתÔØ×Ô΢ÐŹ«Öںš¸SQLÊý¾Ý¿â¡¹£¬×÷Õßؼƽ·²ÊÀ½ç ¡£×ªÔر¾ÎÄÇëÁªÏµ¿ª·¢¹«ÖÚ...
ÎÊÌ⣺ÎÒÃÇÔÚ×öflexµÄ¿ª·¢ÖУ¬Èç¹ûÓõ½±ðÈ˴ºÃµÄ¿ò¼Ü£¬¶ø±ðÈ˵ÄserverÃû³ÆÍù...
Ç°ÑÔ ÏîÄ¿¿ª·¢Öв»¹ÜÊÇǰ̨»¹ÊǺǫ́¶¼»áÓöµ½·³È˵Änull£¬Êý¾Ý¿â±íÖÐ×Ö¶ÎÔÊÐí¿ÕÖµ...