第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有經(jīng)jpeg編碼過的圖片十六進(jìn)制代碼,如何將圖片顯示出來?

有經(jīng)jpeg編碼過的圖片十六進(jìn)制代碼,如何將圖片顯示出來?

慕雪6442864 2019-02-03 09:05:29
比如我有這樣的數(shù)據(jù)(不完整),怎樣把用vb顯示出來76 00 32 00 00 FF D8 FF FE 00 24 12 01 59 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 08 00 F0 01 40 03 01 21 00 02 11 01 03 11 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36 37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7 E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA 11 00 02 01 02 04 04 03 04 07 05 04 04 00 01 02 77 00 01 02 03 11 04 05 21 31 06 12 41 51 07 61 71 13 22 32 FF 00 3F 30 FF 00 DF 6B FE 34 EC F6 0F 67 53 B3 1A 6F 2D 47 06 E6 1F FB F8 BF E3 51 9B CB 5C 64 5D 43 FF 00 7D 8F F1 A2 CC 9F 65 53 F9 58 C3 7D 6B FF 00 3F 30 FF 00 DF C1 FE 34 C3 7D 6C 48 02 E2 22 4F 60 E3 26 84 9F 41 FB 2A 9D 99 FF FF D9 76 00 32 00 00
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個贊

使用JEPG的算法程序即可顯示從文件中讀取到的JPEG十六進(jìn)制數(shù)據(jù)。
但是更簡單的方法是使用空間的LoadPicture方法將圖形文件加載到控件上。
前者速度比較快,專業(yè)的圖形軟件都使用這種辦法。后者方便簡單,但是效率較低。

查看完整回答
反對 回復(fù) 2019-03-14
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個贊

  • 在顯示圖像之前,首先要獲取到圖像文件的存放路徑,這里采用標(biāo)準(zhǔn)的文件打開對話框來選取圖像文件,文件名存放在CString 型的變量m_sPath中:

    CFileDialog dlg(TRUE,"jpg","*.jpg",
    OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
    "JPEG文件(*.jpg)|*.jpg|GIF文件(*.gif)|*.gif||",NULL);
    if(dlg.DoModal()==IDOK)
    {
    m_sPath=dlg.GetPathName();
    Invalidate();
    }

  •  為簡單計,圖形顯示的代碼直接在視類中的OnDraw中編寫,首先打開文件并判斷文件的可用性,并把文件內(nèi)容放到流接口IStream的對象pStm中:

    IStream *pStm;
    CFileStatus fstatus;
    CFile file;
    LONG cb;
    ……
    if (file.Open(m_Path,CFile::modeRead)&&file.GetStatus(m_Path,fstatus)&& ((cb = fstatus.m_size) != -1))
    {
    HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);
    LPVOID pvData = NULL;
    if (hGlobal != NULL)
    {
     if ((pvData = GlobalLock(hGlobal)) != NULL)
     {
      file.ReadHuge(pvData, cb);
      GlobalUnlock(hGlobal);
      CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
     }
    }
    }

  •  然后,就直接調(diào)用OleLoadPicture函數(shù)從流中裝載圖像:
    IPicture *pPic;
    ……
    OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic));

     

  • 由于該函數(shù)有時會導(dǎo)致失敗,所以應(yīng)當(dāng)用SUCCEEDED宏來做一些適當(dāng)?shù)谋Wo(hù)工作,只有在數(shù)據(jù)裝載成功的前提下才能繼續(xù)下面的圖像顯示工作:

    if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
    {
    OLE_XSIZE_HIMETRIC hmWidth;
    OLE_YSIZE_HIMETRIC hmHeight;
    pPic->get_Width(&hmWidth);
    pPic->get_Height(&hmHeight);
    double fX,fY;
    ……
    fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);
    fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);
    if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL))) {
     AfxMessageBox("渲染圖像失?。?quot;);
     pPic->Release();
    }
    else
    AfxMessageBox("從流中裝載圖像失??!");
    }  

     

  • 其中,顯示工作主要是由IPicture接口對象的Render函數(shù)來完成的,該函數(shù)主要用來將圖片的指定部分畫到指定的設(shè)備環(huán)境的指定位置。原型如下:

    HRESULT Render( HDC hdc, //渲染圖像用的設(shè)備環(huán)境句柄
    long x, //在hdc上的水平坐標(biāo)
    long y, //在hdc上的垂直坐標(biāo)
    long cx, //圖像寬度
    long cy, //圖像高度
    OLE_XPOS_HIMETRIC xSrc, //在源圖像上的水平偏移
    OLE_YPOS_HIMETRIC ySrc, //在源圖像上的垂直偏移
    OLE_XSIZE_HIMETRIC cxSrc,//在源圖像上水平拷貝的數(shù)量
    OLE_YSIZE_HIMETRIC cySrc,//在源圖像上垂直拷貝的數(shù)量
    LPCRECT prcWBounds //指向目標(biāo)圖元設(shè)備環(huán)境句柄的指針);



查看完整回答
反對 回復(fù) 2019-03-14
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊

支持一樓的說法,最好不要把圖片放在數(shù)據(jù)庫中。其實(shí)可以先把這段數(shù)據(jù)寫到一個變量中,然后存進(jìn)去就是了,讀出來的時候也是直接讀到那個緩沖區(qū)里,然后強(qiáng)制轉(zhuǎn)換成Image類型,直接賦給PictureBox就行了,可參照如下代碼,把讀出來的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)數(shù)據(jù)。
public Image ByteArrayToImage(byte[] byteArrayIn, int count)
{
MemoryStream ms = new MemoryStream(byteArrayIn, 0, count);
Image ReturnImage = Image.FromStream(ms);
return ReturnImage;
}



查看完整回答
反對 回復(fù) 2019-03-14
  • 3 回答
  • 0 關(guān)注
  • 1502 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號