C++實(shí)現(xiàn)單張圖片讀取和保存
更新時(shí)間:2018年09月24日 12:06:43 作者:一棹煙波
這篇文章主要為大家詳細(xì)介紹了C++語言讀取和保存單張圖片的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
使用C++實(shí)現(xiàn)對(duì)單張圖片的讀取和保存,C語言可以參考,比較簡(jiǎn)單。
#include<iostream>
using namespace std;
void main(void)
{
//保存輸入圖像文件名和輸出圖像文件名
char InImgName[10];
char OutImgName[10];
//圖像數(shù)據(jù)長(zhǎng)度
int length;
//文件指針
FILE* fp;
//輸入要讀取的圖像名
cout<<"Enter Image name:";
cin>>InImgName;
//以二進(jìn)制方式打開圖像
if ( (fp=fopen(InImgName, "rb" ))==NULL )
{
cout<<"Open image failed!"<<endl;
exit(0);
}
//獲取圖像數(shù)據(jù)總長(zhǎng)度
fseek(fp, 0, SEEK_END);
length=ftell(fp);
rewind(fp);
//根據(jù)圖像數(shù)據(jù)長(zhǎng)度分配內(nèi)存buffer
char* ImgBuffer=(char*)malloc( length* sizeof(char) );
//將圖像數(shù)據(jù)讀入buffer
fread(ImgBuffer, length, 1, fp);
fclose(fp);
//輸入要保存的文件名
cout<<"Enter the name you wanna to save:";
cin>>OutImgName;
//以二進(jìn)制寫入方式
if ( (fp=fopen(OutImgName, "wb"))==NULL)
{
cout<<"Open File failed!"<<endl;
exit(0);
}
//從buffer中寫數(shù)據(jù)到fp指向的文件中
fwrite(ImgBuffer, length, 1, fp);
cout<<"Done!"<<endl;
//關(guān)閉文件指針,釋放buffer內(nèi)存
fclose(fp);
free(ImgBuffer);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言數(shù)據(jù)結(jié)構(gòu)順序表的進(jìn)階講解
程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示2022-04-04
Visual Studio 2019修改編碼UTF-8的實(shí)現(xiàn)
這篇文章主要介紹了Visual Studio 2019修改編碼UTF-8的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
VC++中HTControl控件類之CHTRichEdit富文本編輯控件實(shí)例
這篇文章主要介紹了VC++中HTControl控件類之CHTRichEdit富文本編輯控件,是一個(gè)比較實(shí)用的功能,需要的朋友可以參考下2014-08-08
C++實(shí)現(xiàn)LeetCode(96.獨(dú)一無二的二叉搜索樹)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(96.獨(dú)一無二的二叉搜索樹),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

