亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? unit1.cpp

?? 基于小波零樹的圖像壓縮算法,有基于vc++6.0平臺開發(fā)的源碼
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "setpar.h"
#include "Unit1.h"
#include "gwic.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//#define TERMINATE ShowMessage
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

int __fastcall TForm1::load_bmp(Graphics::TBitmap *bmp,float **pic, int *width, int *height,
	      int *orig_width, int *orig_height, int *maxcolor,	      BYTE *colormode)
{
  int i,j,h,w,oh,ow,c1,c2;
  float *p, *g;
  switch(bmp->PixelFormat)
  {
    case pf8bit  :   *colormode = CM_GRAY; break;
    case pf24bit :   *colormode = CM_RGB24;break;
    default : ;
  }
  ow = bmp->Width; oh = bmp->Height;
  if (ow<1 || oh<1) TERMINATE("PNM Width and Height must be > 0");
  w=ow>256 ? (ow+15) & 0xfffffff0 : (ow+7) & 0xfffffff8;  h=oh>256 ? (oh+15) & 0xfffffff0 : (oh+7) & 0xfffffff8;  *height = h; *width = w;  *orig_height = oh; *orig_width = ow;
  *maxcolor = 8;

  switch(*colormode)
  {
    case CM_GRAY: MALLOC(*pic,w*h*sizeof(float)); break;    case CM_RGB24: MALLOC(*pic,w*h*sizeof(float)*3); break;  }

  // Read image
  Byte *line;  p = *pic;  for(j=0; j<h; j++)  {    line=(Byte *)bmp->ScanLine[j];    if (*colormode == CM_GRAY)    {      for(i=0; i<w; i++,p++)      {	      if (i<ow && j<oh)  *p = *line++;        else *p = *(*pic + w*(j<oh?j:oh-1) + (i<ow?i:ow-1));      }    }    else if (*colormode == CM_RGB24)    {      for(i=0; i<w; i++)      {        if (i<ow && j<oh) {*p++ = *line++; *p++ = *line++; *p++ = *line++;}        else {g = (*pic + (3*w)*(j<oh?j:oh) + 3*(i<ow?i:ow));  *p++ = *g++; *p++ = *g++; *p++ = *g++;}      }    }
  }
}


void __fastcall TForm1::OpenBmpClick(TObject *Sender)
{
  if(bmpOpenDialog->Execute())
  {
    Image1->Picture->LoadFromFile(bmpOpenDialog->FileName);
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveWltClick(TObject *Sender)
{
  if(wltSaveDialog->Execute())
  {
  if(fmPar->ShowModal()==mrOk)
  {
    float bpp;
    int w,h,ow,oh,maxc,levelsY, levelsUV;
    float *f, *f2;
    U32 *coeff, *coeff2, *coeff3;
    heap2d *heap,*heap2,*heap3;
    header head;
    parameters par;
    int i,j,k;
    FILE *df;

    par.targetbpp = fmPar->etBPP->Text.ToDouble();
    par.transform = TR_DEFAULT;
    par.ccbsc = (int)(0.1 * 256.0);
    par.out=fopen(wltSaveDialog->FileName.c_str(),"wb");

    //load_pnm(par.in,&f,&w,&h,&ow,&oh,&maxc,&head.cm);
    load_bmp(Image1->Picture->Bitmap,&f,&w,&h,&ow,&oh,&maxc,&head.cm);

    head.magic = MAGIC; head.version = VERSION;
    head.iwidth = ow; head.iheight = oh;
    head.width = w; head.height = h;
    head.ccbsc = par.ccbsc;
    head.bpp[0] = maxc < 256 ? 8 : (maxc < 4096 ? 12 : 16); head.dpi = 0;
    head.transform = par.transform;
    switch (head.cm)
    {
      case CM_GRAY:
        head.levelsY = levelsY = forward_transform(f,w,h,head.transform);
        coeff = convert_matrix_from_float(f,w*h);
        heap = gen_2d_heap(coeff, w, h, levelsY);
        head.n[0] = heap->max;
        fwrite((void *)&head, 1, sizeof(header),par.out);
        start_coding(par.out,TOTALSTATES);
        zerotree_code(coeff,w,h,levelsY,(int)(par.targetbpp * ((float)(w*h)/8.0)),heap,ow*oh);
        break;
      case CM_GRAY_DEEPSPARC:
        TERMINATE("Unsupported color model\n");
        break;
      case CM_RGB24:
        head.bpp[1] = head.bpp[2] = head.bpp[0];
        if (head.bpp[0] != 8)TERMINATE("Unsupported color model - RGB24 with BPP != 8\n");
        convert_matrix_from_24bc_packed_to_yuv_planes(f,w*h);
        head.levelsY = levelsY = forward_transform(f,w,h,head.transform);
        head.levelsUV = levelsUV = forward_transform(f+w*h,w/2,h,head.transform);
        forward_transform(f+w*h+w*h/2,w/2,h,head.transform);
        coeff = convert_matrix_from_float(f,w*h*2);
        heap = gen_2d_heap(coeff, w, h, levelsY);
        heap2 = gen_2d_heap(coeff+w*h, w/2, h, levelsUV);
        heap3 = gen_2d_heap(coeff+w*h+w*h/2, w/2, h, levelsUV);
        head.n[0] = heap->max;
        head.n[1] = heap2->max;
        head.n[2] = heap3->max;
        fwrite((void *)&head, 1, sizeof(header),par.out);
        start_coding(par.out,TOTALSTATES);
        zerotree_code(coeff,w,h,levelsY,(int)((par.targetbpp*w*h*(256-2*head.ccbsc))/(256*8)),heap,ow*oh);
        zerotree_code(coeff+w*h,w/2,h,levelsUV,(int)((par.targetbpp*w*h*(256-head.ccbsc))/(256*8)),heap2,ow*oh);
        zerotree_code(coeff+w*h+w*h/2,w/2,h,levelsUV,(int)((par.targetbpp*w*h)/8),heap3,ow*oh);
        break;
      default:
        TERMINATE("Unsupported color model\n");
        break;
    }
    stop_coding();
    fclose(par.out);
  }
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OpenWltClick(TObject *Sender)
{
  if(wltOpenDialog->Execute())
  {
    float bpp;
    int w,h,ow,oh,maxc,levelsY, levelsUV;
    float *f, *f2;
    U32 *coeff, *coeff2, *coeff3;
    heap2d *heap,*heap2,*heap3;
    header head;
    parameters par;
    int i,j,k;
    FILE *df;

    par.targetbpp = 1.0;
    par.transform = TR_DEFAULT;
    par.ccbsc = (int)(0.1 * 256.0);
    par.in=fopen(wltOpenDialog->FileName.c_str(),"rb");
    fread((void *)&head, 1, sizeof(header),par.in);
    start_decoding(par.in,TOTALSTATES);
    switch (head.cm)
    {
      case CM_GRAY:
        coeff = zerotree_decode(head.width,head.height,head.levelsY,head.n[0]);
        stop_decoding();
        f = convert_matrix_from_int(coeff,head.width*head.height);
        inverse_transform(f,head.width,head.height,head.transform);
        break;
      case CM_GRAY_DEEPSPARC:
        TERMINATE("Unsupported color model\n");
        break;
      case CM_RGB24:
        coeff = zerotree_decode(head.width,head.height,head.levelsY,head.n[0]);
        coeff2 = zerotree_decode(head.width/2,head.height,head.levelsUV,head.n[1]);
        coeff3 = zerotree_decode(head.width/2,head.height,head.levelsUV,head.n[2]);
        stop_decoding();
        MALLOC(f2,sizeof(float)*3*head.width*head.height);
        j = head.width * head.height;

        f = convert_matrix_from_int( coeff, head.width * head.height);
        inverse_transform( f, head.width, head.height, head.transform);
        for(i=0; i<j; i++) *(f2+i) = *(f+i); free(f);

        f = convert_matrix_from_int(coeff2, head.width * head.height / 2);
        inverse_transform(f, head.width / 2, head.height, head.transform);
        for(i=0; i<j/2; i++) *(f2+i+j) = *(f+i); free(f);

        f = convert_matrix_from_int( coeff3, head.width * head.height / 2);
        inverse_transform( f, head.width / 2, head.height, head.transform);
        for(i=0; i<j/2; i++) *(f2+i+j+j/2) = *(f+i); free(f);

        f = f2;
        convert_matrix_from_to_yuv_planes_24bc_packed(f,j);
        break;
      default:
        TERMINATE("Unsupported color model\n");
        break;
    }
    fclose(par.in);

    //save_pnm(par.out,f,head.width,head.height,head.iwidth,head.iheight,(1<<(head.bpp[0]))-1,head.cm);
    {
      float *pic=f;
      int width=head.width;
      int height=head.height;
      int orig_width=head.iwidth;      int orig_height=head.iheight;      int maxcolor=(1<<(head.bpp[0]))-1;      BYTE colormode=head.cm;

      Graphics::TBitmap *bmp=new Graphics::TBitmap();
      bmp->PixelFormat=pf24bit;
      bmp->Width=orig_width;
      bmp->Height=orig_height;
      int i,j,k;
      float *p;      Byte *ptr;      switch (colormode)      {        case CM_GRAY:        {          for (j=0; j<orig_height; j++)          {            p=pic+width*j;            ptr=(Byte *)bmp->ScanLine[j];            for (i=0; i<orig_width; i++,p++)            {              k = (int)*p;              if(k>maxcolor) k=maxcolor;              if (k<0) k=0;              if (maxcolor <256) {*ptr++=k;  *ptr++=k;  *ptr++=k;}              else {/*fputc(k & 0xff,out);  fputc(k >> 8,out);*/}            }          }          Image2->Width=bmp->Width;          Image2->Height=bmp->Height;                    Image2->Canvas->Draw(0,0,bmp);          break;        }        case CM_RGB24:        {          for (j=0; j<orig_height; j++)          {            p=pic+width*j*3;            ptr=(Byte *)bmp->ScanLine[j];            for (i=0; i<orig_width; i++)            {              k = (int)*p++; if(k>255) k=255; if (k<0) k=0;*ptr++=k;              k = (int)*p++; if(k>255) k=255; if (k<0) k=0;*ptr++=k;              k = (int)*p++; if(k>255) k=255; if (k<0) k=0;*ptr++=k;            }          }          Image2->Width=bmp->Width;          Image2->Height=bmp->Height;          Image2->Canvas->Draw(0,0,bmp);          break;        }        default:  TERMINATE("Unsupported colormode");      }
      delete bmp;
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveBmpClick(TObject *Sender)
{
  if(bmpSaveDialog->Execute())
  {
    Image2->Picture->SaveToFile(bmpSaveDialog->FileName);
  }
}
//---------------------------------------------------------------------------



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆国产欧美一区二区三区| 国产欧美精品一区二区色综合朱莉 | 亚洲精品一区在线观看| 成人av在线影院| 国产在线视视频有精品| 秋霞av亚洲一区二区三| 亚洲午夜久久久久| 亚洲精品福利视频网站| 国产精品久久久久天堂| 欧美激情一区二区三区四区| 欧美日韩黄色影视| 色综合网站在线| 福利一区福利二区| 国产精品自在欧美一区| 国产一区激情在线| 激情综合亚洲精品| 精品一区二区三区不卡 | 95精品视频在线| 粉嫩av一区二区三区| 韩国女主播成人在线| 蜜臀av一区二区在线免费观看| 亚洲一区二区三区在线| 亚洲曰韩产成在线| 亚洲电影中文字幕在线观看| 亚洲香蕉伊在人在线观| 一区在线中文字幕| 一区二区三区四区中文字幕| 亚洲日本在线a| 亚洲精品第1页| 亚洲一区二区中文在线| 亚洲一级不卡视频| 美国av一区二区| 韩国三级在线一区| av福利精品导航| 欧美综合久久久| 欧美一区二区成人6969| 日韩欧美一级精品久久| 国产亚洲综合av| 精品美女被调教视频大全网站| 久久影院午夜论| 最新中文字幕一区二区三区| 亚洲mv在线观看| 国产一区在线精品| caoporen国产精品视频| 9191国产精品| 久久精品男人天堂av| 欧美国产综合一区二区| 日韩av中文字幕一区二区三区| 精品在线播放午夜| 不卡的电影网站| 欧美视频在线观看一区| 精品国产免费一区二区三区四区 | 免费不卡在线视频| 大桥未久av一区二区三区中文| 色偷偷成人一区二区三区91 | 亚洲一区二区美女| 国产一区二区网址| 色猫猫国产区一区二在线视频| 欧美日韩在线三级| 国产欧美综合色| 久久国产精品99久久人人澡| 99久久婷婷国产综合精品| 69堂成人精品免费视频| 欧美精品久久99久久在免费线| 中文字幕在线一区免费| 美国av一区二区| 在线精品视频小说1| 久久久国产综合精品女国产盗摄| 一区二区欧美精品| 不卡一区二区在线| 久久综合狠狠综合| 久色婷婷小香蕉久久| 91国产免费看| 久久久久国色av免费看影院| 午夜影院在线观看欧美| 99精品1区2区| 久久久国产一区二区三区四区小说| 亚洲bt欧美bt精品777| va亚洲va日韩不卡在线观看| 欧美一区二区三区喷汁尤物| 亚洲精品国产品国语在线app| 国产精品资源网站| 精品国产sm最大网站| 男女视频一区二区| 欧美美女黄视频| 偷拍一区二区三区| 欧美体内she精高潮| 亚洲欧洲无码一区二区三区| 国产69精品久久久久777| 久久免费电影网| 国产福利91精品一区二区三区| 日韩精品一区二区三区视频在线观看| 亚洲精品国产高清久久伦理二区| 不卡大黄网站免费看| 国产精品免费视频一区| 国产在线不卡一卡二卡三卡四卡| 色婷婷综合在线| 亚洲福利电影网| 欧美日韩亚洲综合| 日本成人在线电影网| 欧美一区二区免费观在线| 免费三级欧美电影| 日韩精品一区二区三区四区视频| 看国产成人h片视频| 日韩色在线观看| 国产在线一区二区综合免费视频| 国产欧美日韩中文久久| 成人激情图片网| 亚洲人成精品久久久久久| 91麻豆自制传媒国产之光| 青青草一区二区三区| 精品美女一区二区| 高清视频一区二区| 亚洲乱码中文字幕综合| 欧美久久久一区| 国产一区二区三区免费播放| 国产亚洲1区2区3区| 97久久精品人人做人人爽 | 亚洲国产另类精品专区| 在线综合亚洲欧美在线视频| 美腿丝袜亚洲一区| 久久久久国产成人精品亚洲午夜| 国产在线观看免费一区| 国产亚洲欧美激情| 欧美三级视频在线观看| 麻豆久久久久久| 国产精品卡一卡二| 欧美日韩视频第一区| 国产老妇另类xxxxx| 日韩精品一级中文字幕精品视频免费观看| 国产日韩v精品一区二区| 欧美日韩亚洲另类| 91麻豆国产香蕉久久精品| 国产精品一二三区| 日韩电影免费在线观看网站| 亚洲精选在线视频| 国产精品日日摸夜夜摸av| 日韩欧美亚洲国产另类| 精品1区2区3区| 在线精品视频小说1| av一区二区三区四区| 国产精品白丝av| 国产精品99久久久久久宅男| 视频在线观看一区| 日韩中文字幕区一区有砖一区 | 99国产精品久久| 国产电影一区二区三区| 久久精品国产一区二区| 日韩高清在线不卡| 午夜久久电影网| 亚洲高清免费在线| 亚洲一区二区三区自拍| 亚洲国产欧美日韩另类综合 | 国产视频在线观看一区二区三区 | 欧美午夜片在线看| 欧美性videosxxxxx| 在线观看国产91| 欧美日韩免费电影| 欧美日韩亚洲综合一区| 欧美日本乱大交xxxxx| 欧美一级黄色片| 日韩精品一区二| 国产日韩欧美精品综合| 国产精品久久久久久户外露出| 国产精品国产三级国产普通话99 | 国产精品嫩草99a| 亚洲欧洲一区二区在线播放| 亚洲精品成人a在线观看| 一区二区三区四区不卡在线| 亚洲午夜视频在线观看| 日韩精品电影在线| 激情综合五月婷婷| 91免费版在线| 欧美系列一区二区| 亚洲精品在线观| 亚洲丝袜自拍清纯另类| 亚洲午夜久久久| 国产一区二区三区国产| 99热精品国产| 91精品国产欧美日韩| 久久久午夜精品| 一区二区三区在线观看欧美| 日韩经典中文字幕一区| 丁香婷婷深情五月亚洲| 欧美丝袜丝交足nylons| 精品嫩草影院久久| 亚洲精品网站在线观看| 蜜臀av在线播放一区二区三区| 国产大陆亚洲精品国产| 在线观看日韩精品| 精品国免费一区二区三区| 日韩美女久久久| 九九久久精品视频| 久久亚洲影视婷婷| 夜夜爽夜夜爽精品视频| 国产一区二区三区四| 欧洲av一区二区嗯嗯嗯啊| 久久嫩草精品久久久精品一| 一区二区免费在线播放| 国产成人免费9x9x人网站视频|