c++이미지 처리:24 비트 컬러 그림 색상 변환 인 스 턴 스
실례 는 다음 과 같다.
#include<iostream>
#include<Windows.h>
using namespace std;
bool isred(BYTE r,BYTE g,byte b){
if(r>g&&r>b) return true;
else return false;
}
void red2green(BYTE& r,BYTE& g,BYTE& b){
BYTE tmp=r;
r=g;
g=tmp;
}
int main(){
FILE *fpin=fopen("flo.bmp","rb+");
if(fpin==NULL){
cout<<" "<<endl;
system("pause");
return 0;
}
BITMAPFILEHEADER bitmapfileheader;
BITMAPINFOHEADER bitmapinfoheader;
fread(&bitmapfileheader,sizeof(bitmapfileheader),1,fpin);
fread(&bitmapinfoheader,sizeof(bitmapinfoheader),1,fpin);
if(bitmapfileheader.bfType!='B'+'M'*256){
cout<<" bmp "<<endl;
fclose(fpin);
system("pause");
return 0;
}
if(bitmapinfoheader.biBitCount!=24){
cout<<" 24 bmp"<<endl;
fclose(fpin);
system("pause");
return 0;
}
// fpout
FILE *fpout=fopen("output.bmp","wb+");
//BITMAPFILEHEADER bitmapfileheader2;
//BITMAPINFOHEADER bitmapinfoheader2;
//bitmapfileheader2=bitmapfileheader;
//bitmapinfoheader2=bitmapinfoheader;
fwrite(&bitmapfileheader,sizeof(bitmapfileheader),1,fpout);
fwrite(&bitmapinfoheader,sizeof(bitmapinfoheader),1,fpout);
if(bitmapinfoheader.biClrUsed!=0){
cout<<" "<<endl;
system("pause");
return 0;
}
if(bitmapinfoheader.biBitCount==24){
cout<<"24 "<<endl;
//int line_width=((bitmapinfoheader.biWidth*bitmapinfoheader.biBitCount+24)/32)*4;
int line_width=bitmapinfoheader.biWidth*3;
BYTE *line_buf=new BYTE[line_width];
for(int i=0;i<bitmapinfoheader.biHeight;i++){
fread(line_buf,line_width,1,fpin);
for(int j=0;j<bitmapinfoheader.biWidth;j++){
BYTE b=line_buf[3*j];
BYTE g=line_buf[3*j+1];
BYTE r=line_buf[3*j+2];
if(isred(r,g,b)){
red2green(line_buf[3*j+2],line_buf[3*j+1],line_buf[3*j]);
}
}
fwrite(line_buf,line_width,1,fpout);
}
fclose(fpin);
fclose(fpout);
delete []line_buf;
cout<<" "<<endl;
}
system("pause");
return 0;
}
이상 의 c++이미지 처리:24 비트 컬러 그림 색상 변환 인 스 턴 스 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu 1717 소수 화 점수 2 (수학)소수 화 점수 2 레이 는 수학 시간 에 선생님 의 말씀 을 듣 고 모든 소수 가 점수 로 표시 되 는 형식 이 라 고 말 했다. 그 는 녹 기 시 작 했 고 곧 완성 되 었 다. 그러나 그 는 또 하나의 문 제 를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.