線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3723
推到 Plurk!
推到 Facebook!

請問一下.要如何將RAW->JPG

尚未結案
nickname
一般會員


發表:1
回覆:1
積分:0
註冊:2005-02-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-04 11:33:27 IP:140.124.xxx.xxx 未訂閱
我再寫一ㄍCCD影像擷取的程式,並且想要將截去的影像丟到PHP的網頁上 但我抓下來的圖檔是.RAW,這種形式的檔案帶太大了.因此希望有誰能教教我要如何做轉檔的動作(use C++),另外附上我所寫的程式碼,敬請指教:
void CServerDlg::OnButton3()   //存圖
{
        int k;
         int j;
        // TODO: Add your control notification handler code here
           FILE *stream;
   if( (stream = fopen( "Cap_picture.raw", "wb" )) != NULL )
   {
           for(k=0,j=230399;j>=0;k  ,j--)
                {
                    Data1[k]=Data[j];
                }
      /* Write 10 member to stream */ 
      fwrite(Data1, sizeof(char),230400, stream );
      fclose( stream );
   }
   else
 AfxMessageBox("Can't open file!");            }    LRESULT PASCAL  fpVideoCallback(HWND hWnd,LPVIDEOHDR lpVHdr)
{ 
        CServerDlg *ptr;
        ptr=new CServerDlg;
::PostMessage(g_Hwnd,10001,0,0);
        for(int p=0;p<230400;p  ){
                Data[p]=lpVHdr->lpData[p];}
        
//畫影像
    if(!DrawDibBegin(hdd,hdc,-1,-1,&bmpinfo.bmiHeader,CAPWIDTH,CAPHEIGHT,NULL))
    {
        AfxMessageBox("DrawDibBegin error!");
    }          if(!DrawDibDraw(hdd,hdc,0,0,320,240,&bmpinfo.bmiHeader,Data
         ,0,0,CAPWIDTH,CAPHEIGHT,DDF_SAME_DRAW | DDF_SAME_HDC))
    {
        AfxMessageBox("DrawDibDraw error");
    }
      if(!DrawDibEnd(hdd))
    {
        AfxMessageBox("initDisplay DrawDibBegin Error!");        }      return TRUE;
}
....這是上天的決定 發表人 - taishyang 於 2005/02/04 13:33:42
------
....這是上天的決定
nickname
一般會員


發表:1
回覆:1
積分:0
註冊:2005-02-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-04 12:15:43 IP:140.124.xxx.xxx 未訂閱
在附上攝影機CCD參數 //攝影機參數 bmpinfo.bmiHeader.biSize=40; bmpinfo.bmiHeader.biWidth=320; bmpinfo.bmiHeader.biHeight=240; bmpinfo.bmiHeader.biPlanes=1; bmpinfo.bmiHeader.biBitCount=24; bmpinfo.bmiHeader.biCompression=0; bmpinfo.bmiHeader.biSizeImage=230400; bmpinfo.bmiHeader.biXPelsPerMeter=0; bmpinfo.bmiHeader.biYPelsPerMeter=0; bmpinfo.bmiHeader.biClrUsed=0; bmpinfo.bmiHeader.biClrImportant=0; ....這是上天的決定
------
....這是上天的決定
m58610
初階會員


發表:22
回覆:83
積分:36
註冊:2003-09-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-04 18:19:13 IP:140.118.xxx.xxx 未訂閱
以前專題寫的程式 要用一個image將像素讀入然後存檔成BMP(BCB) 供你參考    raw -> image -> bmp  
 
//---------------------------------------------------------------------------    #include 
#pragma hdrstop    #include "Unit1.h"
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
        fstream in1_raw("image.raw",ios::in|ios::binary);
        Byte* ptr;
        Graphics::TBitmap *TheBitmap;
        TheBitmap=new Graphics::TBitmap();
        TheBitmap=img1->Picture->Bitmap;
        int i,j;
        for(i=0;i<=511;i  )
        {
                ptr=(Byte*)TheBitmap->ScanLine[i];
                for(j=0;j<=511;j  )
                {
                        ptr[j*3]=in1_raw.get();
                        ptr[j*3 1]=ptr[j*3];
                        ptr[j*3 2]=ptr[j*3];
                }
        }
        Repaint();
        img1->Picture->SaveToFile("RAW2BMP.bmp");
}
//-----------------------------------------------------
如要存成jpg 只要做一些修改就可以了
 
#include "jpeg.hpp"    TheJPEG= new TJPEGImage;
                TheJPEG->Assign(img1->Picture->Bitmap);
                TheJPEG->PixelFormat=jf24Bit;
                int quality=StrToInt(InputBox("JPEG品質","請輸入JPEG品質(1:最差,100:最好)","100"));  ///手動輸入品質
                if(quality<1)
                        quality=1;
                if(quality>100)
                        quality=100;
                TheJPEG->CompressionQuality=quality;
                TheJPEG->SaveToFile("RAW2JPG.jpg");
發表人 - m58610 於 2005/02/04 18:22:02 發表人 - m58610 於 2005/02/04 18:24:36
bonbon
一般會員


發表:6
回覆:6
積分:2
註冊:2005-03-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-10-28 17:54:02 IP:211.76.xxx.xxx 訂閱
我想請教fstream 及in1_raw需另外再定義嗎?bcb裡找不到fstream的用法…^^|||
謝謝您
系統時間:2024-05-03 12:39:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!