首先先介紹c++中影象資料分配記憶體方法。
在計算機中影象是乙個二維的數字點陣。
比較容易想到的是申請乙個二維矩陣來儲存影象
如:byte image[512][512];
可以儲存一幅512*512個畫素的影象,每個畫素用乙個位元組表示,乙個位元組能表示0-255共256個不同取值。所以這一二維陣列比較合適儲存灰度影象。
對於二維彩色影象,如果每個畫素分別有r,g,b 3個顏色分量,則可以用如下的方式分配二維陣列。
struct rgb;
rgb image[512][512];
但是分配二維陣列有乙個致命缺點,就是不能分配占用空間較大的陣列,如imgae。
所以,比較好的二維影象記憶體分配方法可用以下思想:
byte *imgae[5000];
for(int i=0;i<512;i++)
,以上**實際就是建立乙個二維陣列,image[i][j]表示二維陣列的第i行第j列。儲存影象第i行第j列個畫素。
bmp檔案組成分為:
header
bitmapfileheader
bitmapinfoheader
rgbquad
data }
以下是將.raw 檔案轉為.bmp格式的程式,
#include
#include
#include
int main()
//unsigned char *image[1000];//image[i] is a point
for(i=0;i<512;i++)
//after this the lena.raw's data is been read into image;
fclose(fp);
fp1=fopen("f:\\new.bmp","wb");
if(fp1==null)
if(storew%4!=0)
// bitmapfileheader bh;//位圖標頭檔案(包含有關檔案型別,大小,存放位置等資訊)
bh.bftype=((word)('m'<<8)|'b');//"bm"說明檔案型別
bh.bfreserved1=0;//保留
bh.bfreserved2=0;//保留
bh.bfsize=sizeof(bitmapfileheader)+sizeof(bitmapinfoheader)+sizeof(rgbquad)*256 + storew*imageh;//檔案大小
bh.bfoffbits=sizeof(bitmapfileheader)+sizeof(bitmapinfoheader)+sizeof(rgbquad)*256;
//表示從頭檔案開始到實際影象資料資料之間的位元組的偏移量。bfoffbits可以直接定位畫素資料
//bitmapinfoheader binfo;//位圖資訊頭
binfo.bisize=sizeof(bitmapinfoheader);//說明bitmapinfoheader結構所需的字數
binfo.biwidth= imagew;//影象寬度,以畫素為單位
binfo.biheight=imageh;//影象高度,以畫素為單位
binfo.biplanes=1;//為目標裝置說明位面數,其中總是被設為1
binfo.bibitcount=8;//說明位元數/畫素的顏色深度,值為0,1,4,8,16,24或32,256灰度級的顏色深度為8,因為2^8=256
binfo.bicompression=bi_rgb;//說明影象資料壓縮型別
binfo.bisizeimage=storew*imageh;//說明影象的大小,一位元組為單位,
binfo.bixpelspermeter=0;//水平解析度,可以設為0
binfo.biypelspermeter=0;//垂直解析度,可以設為0
binfo.biclrused=256;//說明位圖實際使用的彩色表中顏色索引數
binfo.biclrimportant=0;//說明對影象顯示有重要影響的顏色索引數目,為0表示都重要。
fwrite(&bh,sizeof(bitmapfileheader),1,fp1);//把點陣圖標頭檔案寫入新建的bmp格式檔案中
fwrite(&binfo,sizeof(bitmapinfoheader),1,fp1);//位圖資訊頭寫入新建的bmp格式檔案中
// rgbquad rgb;
rgb.rgbreserved=0;
for(i=0;i<256;i++)
for(i=0;i<256;i++)
fclose(fp1);
return 0 ;}
獲取當前時間並轉化為轉化為各種格式
在專案中直接把 複製成乙個fortime.js檔案,然後在需要用到的時候import或者require一下,根據需要用 例如 var fortime require utils fortime.js 然後根據需要選擇是 fortime.formattime new date fortime.form...
將Excel轉化為xml格式
coding utf 8 created on mon aug 19 14 14 01 2019 author administrator usr bin env python coding utf 8 import xlrd import xml.dom.minidom import os imp...
jsonp格式的資料轉化為json格式
如果前端請求獲取到的資料格式是jsonp,那麼我們就要轉換成json才能進行解析。datas為jsonp資料格式的字串變數,如 jsonp function jsonptojson datas const matches datas.match reg matches匹配到的是陣列,陣列第乙個是所有...