freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多媒體技術(shù)與應(yīng)用學(xué)習(xí)心得-資料下載頁(yè)

2024-10-21 08:22本頁(yè)面
  

【正文】 壓縮后數(shù)據(jù)的長(zhǎng)度nTotal,壓縮后數(shù)據(jù)指針lpDst //返回參數(shù): 是否成功////////////////////////////////////////////////////////////////////// int CDib::BmpToDCT(LPCSTR filename,LONG amp。nTotal,char *lpDst){ //量化參數(shù)static BYTE Q_table[64] = {16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99}。//用數(shù)組實(shí)現(xiàn)獲取圖像數(shù)據(jù)int nWidth,nHeight,i,j,k,i_start,j_start。BYTE Gray[GraySize][GraySize]。LoadBmp(filename)。Read_Imagedata(nWidth,nHeight,Gray)。//將圖像數(shù)據(jù)分成若干個(gè)88的子塊,獲取子塊數(shù)據(jù),共4096個(gè)子分塊BYTE FkGray[4096][8][8]。DWORD dwBuffUsed=0。// 緩沖區(qū)已使用的字節(jié)數(shù)// 中間變量char bChar1。char bChar2。// 重復(fù)像素計(jì)數(shù)BYTE iCount=0。//lpDst = new BYTE[nWidth*nHeight]。for(k=0。ki_start =(k/64)*8。//整數(shù)商8for(i=0。i{j_start =(k%64)*8。//整余數(shù)8for(j=0。j{FkGray[k][i][j]=Gray[i_start][j_start]。j_start++。}i_start++。} } // double *f = new double[64]。//存放DCT系數(shù)緩沖區(qū)char *f1 = new char[64]。//量化后的系數(shù)char *temp_f1。int m。for(k=0。km=0。for(i=0。i{for(j=0。j{f[m]=(double)FkGray[k][i][j]。m++。}}fdct_2D(f,3,3)。//二維DCT變換for(i=0。if1[i]=(char)((f[i]/Q_table[i]))。//對(duì)子分塊進(jìn)行游程編碼 temp_f1 = f1。bChar1 = *temp_f1。// 給bChar1賦值iCount = 1。// 設(shè)置iCount為1temp_f1++。// 讀取下一個(gè)像素bChar2 = *temp_f1。for(i =0。i{if(bChar1 == bChar2)// 判斷是否和bChar1相同{iCount ++。// 相同,計(jì)數(shù)加1,繼續(xù)讀下一個(gè)temp_f1++。bChar2 = *temp_f1。}else{ // 不同,寫(xiě)入緩沖區(qū)if(iCount 1){lpDst[dwBuffUsed] = iCount。// 保存碼長(zhǎng)信息}else{lpDst[dwBuffUsed] = 1。// 保存碼長(zhǎng)信息}lpDst[dwBuffUsed + 1] = bChar1。// 保存bChar1dwBuffUsed += 2。// 更新dwBuffUsedbChar1 = bChar2。// 重新給bChar1賦值temp_f1++。// 重新給bChar2賦值bChar2 = *temp_f1。iCount = 1。}}}nTotal = dwBuffUsed。//返回編碼后的圖像字節(jié)數(shù)return 1。}////////////////////////////////////////////////////////////////////// //函數(shù)名稱(chēng): DCTToBmp //完成功能: 對(duì)DCT文件進(jìn)行解壓縮 //輸入?yún)?shù): 文件名 filename //輸出參數(shù): 解壓縮后數(shù)據(jù)的長(zhǎng)度nTotal,解壓縮后數(shù)據(jù)指針lpDst //返回參數(shù): 是否成功////////////////////////////////////////////////////////////////////// int CDib::DCTToBmp(LPCSTR filename,LONG amp。nTotal,BYTE *lpDst){ //量化參數(shù) static BYTE Q_table[64] = {16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99}。//定義DCT文件的指針CFile file。char *lpDCTfile = new char[512*512]。DWORD DCTDataSize。//打開(kāi)文件if(!(filename,CFile::modeRead|CFile::shareDenyNone)){AfxMessageBox(“Can not open the file!”)。return1。} DCTDataSize = ()。//獲取文件的長(zhǎng)度(lpDCTfile,DCTDataSize)。//讀文件lpDCTfile=lpDCTfile+14+40+256*4。//將文件指針移到DCT數(shù)據(jù)區(qū)域BYTE Gray[GraySize][GraySize]。//存放BMP數(shù)據(jù)char FkGray[4096][8][8]。//存放8*8子塊數(shù)據(jù) int i,j,k,i_start,j_start。char bchar1,bchar2。char *lptemp = new char[512*512]。i=0。int ff。//test while(i{bchar1=*lpDCTfile。lpDCTfile++。bchar2=*lpDCTfile。lpDCTfile++。while(bchar1!=0){lptemp[i] = bchar2。i++。bchar1。}if(i252550)ff++。} //將數(shù)據(jù)放到各個(gè)子塊for(k=0。kfor(i=0。ifor(j=0。j{FkGray[k][i][j] = *lptemp。lptemp++。} } // double *f1 = new double[64]。//還原量化前的系數(shù)(即DCT系數(shù))//int *f = new int[64]。//存放DCT系數(shù)反變換后的數(shù)據(jù)緩沖區(qū)int m。for(k=0。km=0。for(i=0。i{for(j=0。j{f1[m]=(double)(FkGray[k][i][j]*Q_table[m])。m++。}}fidct_2D(f1,3,3)。//二維DCT反變換m=0。i_start =(k/64)*8。//整數(shù)商8for(i=0。i{j_start =(k%64)*8。//整余數(shù)8for(j=0。j{Gray[i_start][j_start]=(BYTE)(f1[m])。m++。j_start++。}i_start++。} } // for(i=511。i0。i)for(j=0。j{*lpDst=Gray[i][j]。lpDst++。} ///////////////////////////////////////////////////////////////////////////////nTotal = 512*512。//返回編碼后的圖像字節(jié)數(shù)return 1。}/////////////////////////////////////// //BOOL BMPToMyPcx(BYTE *lpDIBBits,LONG lSrcBytes,BYTE *lpDst,LONG lDstBytes)//完成功能:將原BMP圖像數(shù)據(jù)通過(guò)游程編碼進(jìn)行壓縮//輸入?yún)?shù):位圖源圖像象素的指針lpDIBBits,原圖像數(shù)據(jù)長(zhǎng)度lSrcBytes // 壓縮后圖像象素的指針lpDst,壓縮后數(shù)據(jù)長(zhǎng)度lDstBytes //返回參數(shù):是否成功/////////////////////////////////////// BOOL CDib::BMPToMyPcx(BYTE *lpDIBBits,LONG lSrcBytes,BYTE *lpDst,LONG amp。lpDstBytes){// 循環(huán)變量LONG i。LONG j。// DIB高度WORD wHeight = 512。// DIB寬度WORD wWidth = 512。// 中間變量BYTE bChar1。BYTE bChar2。// 圖像每行的字節(jié)數(shù)LONG lLineBytes = wWidth * 3。// 重復(fù)像素計(jì)數(shù)int iCount。// 緩沖區(qū)已使用的字節(jié)數(shù)DWORD dwBuffUsed。// BYTE *lpSrc。//******************************************************************************* // 開(kāi)始編碼// 開(kāi)辟一片緩沖區(qū)(2被原始圖像大小)以保存編碼結(jié)果lpDst = new BYTE[wHeight * wWidth * 2]。// 指明當(dāng)前已經(jīng)用了多少緩沖區(qū)(字節(jié)數(shù))dwBuffUsed = 0。// 每行for(i = 0。i wHeight。i++){// 指向DIB第i行,第0個(gè)象素的指針lpSrc = lpDIBBits + lLineBytes *(wHeighti)。// 給bChar1賦值bChar1 = *lpSrc。// 設(shè)置iCount為1iCount = 1。// 剩余列for(j = 1。j wWidth。j ++){// 指向DIB第i行,第j個(gè)象素的指針lpSrc++。// 讀取下一個(gè)像素bChar2 = *lpSrc。// 判斷是否和bChar1相同并且iCount 63if((bChar1 == bChar2)amp。amp。(iCount 63)){// 相同,計(jì)數(shù)加1iCount ++。// 繼續(xù)讀下一個(gè)} else {// 不同,或者iCount = 63// 寫(xiě)入緩沖區(qū)if((iCount 1)||(bChar1 = 0xC0)){// 保存碼長(zhǎng)信息lpDst[dwBuffUsed] = iCount | 0xC0。// 保存bChar1lpDst[dwBuffUsed + 1] = bChar1。// 更新dwBuffUseddwBuffUsed += 2。}else{// 直接保存該值lpDst[dwBuffUsed] = bChar1。// 更新dwBuffUseddwBuffUsed ++。}// 重新給bChar1賦值bChar1 = bChar2。// 設(shè)置iCount為1iCount = 1。} }// 保存每行最后一部分編碼if((iCount 1)||(bChar1 = 0xC0)){ // 保存碼長(zhǎng)信息lpDst[dwBuffUsed] = iCount | 0xC0。// 保存bChar1lpDst[dwBuffUsed + 1] = bChar1。// 更新dwBuffUseddwBuffUsed += 2。}else{// 直接保存該值lpDst[dwBuffUsed] = bChar1。// 更新dwBuffUseddwBuffUsed ++。} }lpDstBytes = dwBuffUsed。//返回編碼后的圖像字節(jié)數(shù)// 寫(xiě)入編碼結(jié)果//((LPSTR)lpDst, dwBuffUsed)。// 釋放內(nèi)存//delete lpDst。//**************************************************************************return true。}
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1