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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cbmp.pas

?? 通過Delphi編程實現將多張圖片進行合成的程序源代碼
?? PAS
字號:
  {

   SmallC
   small_c@mail.china.com
   圖像合成,速度較快.
   小弟是改自一個叫 "AlComps"的控件包.
  }
unit CBmp;

interface

  Uses Windows ;

  procedure BlendPic(hBmp,hBmp2,hDC,Proportion :Integer);
  procedure BlendPic2(hBmp,hBmp2,hDC,Proportion :Integer);
 
implementation {==========================================================}

type

TFColor=record
  b,g,r: Byte;
end;

TLine=array[0..0]of TFColor;
PLine=^TLine;

var
  Handle, Handle2,
  Width,Height:     Integer;
  Bits,Bits2:       Pointer;
  BmpHeader:        TBITMAPINFOHEADER;
  BmpInfo:          TBITMAPINFO;
  RGB1:array of TFColor  ;
  RGB2:array of TFColor  ;

procedure SetLine(y:Integer;Line,Line2:Pointer);
begin
  CopyMemory( Pointer(Integer(Bits)+(y*(Width mod 4))+((y*Width)*3)),
                Line,Width*3);

  CopyMemory(Pointer(Integer(Bits2)+(y*(Width mod 4))+((y*Width)*3)),
                Line2,Width*3);
end;

procedure GetScanLine(y:Integer;Line,Line2:Pointer);
begin
  CopyMemory(Line,
                Pointer(Integer(Bits)+(y*(Width mod 4))+((y*Width)*3)),
                Width*3);
  CopyMemory(Line2,
                Pointer(Integer(Bits2)+(y*(Width mod 4))+((y*Width)*3)),
                Width*3);
end;

procedure CreateFromhWnd(hBmp,hBmp2:Integer);
    var Bmp:  TBITMAP;
        hDC:  Integer;
begin
       //為專門設備創建設備場景
  hDC:=CreateDC('DISPLAY',nil,nil,nil);
                //DISPLAY 獲取整個屏幕
   //每個設備場景都可能有選入其中的圖形對象。
  SelectObject(hDC,hBmp);
             //設備場景的句柄; 位圖句柄
  //取得對指定對象進行說明的一個結構。
  GetObject(hBmp,SizeOf(Bmp),@Bmp);
         //位圖句柄;長度; 位圖BITMAP
  Width:= Bmp.bmWidth;
  Height:=Bmp.bmHeight;

  with BmpHeader do
  begin
    biSize:=SizeOf(BmpHeader);
    biWidth:=Width;
    biHeight:=- Height;
    biPlanes:=1;
    biBitCount:=24;
    biCompression:=BI_RGB;
  end;
  BmpInfo.bmiHeader:=BmpHeader;

    Handle:=CreateDIBSection(0,BmpInfo,
                   DIB_RGB_COLORS,
                   Bits,0,0);
   Handle2:=CreateDIBSection(0,BmpInfo,
                   DIB_RGB_COLORS,
                   Bits2,0,0);

   //將來自一幅位圖的二進制位復制到一幅與設備無關的位圖里
  GetDIBits(hDC,                  //設備場景的句柄
            hBmp,                 //源位圖的句柄。
            0,                    //欲復制到DIB中的第一條掃描線的編號
            Height,                //欲復制的掃描線數量
            Bits,                  //指向一個緩沖區的指針。
            BmpInfo,                //BITMAPINFO,對lpBits DIB的格式及顏色進行說明的一個結構。
            DIB_RGB_COLORS);        //在顏色表中裝載RGB顏色
   GetDIBits(hDC,
            hBmp2,
            0,
            Height,
            Bits2,
            BmpInfo,
            DIB_RGB_COLORS);

  DeleteDC(hDC);   //刪除專用設備場景或信息場景
end;

procedure BlendPic(hBmp,hBmp2,hDC,Proportion :Integer);
  var   x,y : Integer;
        Line,Line2:   PLine;
        p,p2:Single;
begin
   CreateFromhWnd(hBmp,hBmp2);
   GetMem(Line,Width*3);
   GetMem(Line2,Width*3);

  p2:= Proportion/5;
  p:=2-p2;
  for y:=0 to Height-1 do
  begin
    GetScanLine(y,Line,Line2);
    for x:=0 to Width-1 do
    begin
       Line^[x].r:=  Trunc((Line^[x].r*p  +  Line2^[x].r*p2)  / 2) ;
       Line^[x].g:=  Trunc((Line^[x].g*p  +  Line2^[x].g*p2) / 2 ) ;
       Line^[x].b:=  Trunc((Line^[x].b*p  +  Line2^[x].b*p2) / 2 ) ;
    end;
      SetLine(y,Line,Line2);
  end;
  FreeMem(Line,Width*3);     //釋放內存
  FreeMem(Line2,Width*3);

  SetDIBitsToDevice(hDC,                 //設備場景的句柄。該場景用于接收位圖數據
                    0,0,                 //用邏輯坐標表示的目標矩形的起點
                    Width,Height,       //用目標矩形的設備單位表示的寬度及高度
                    0,0,                //用設備坐標表示的源矩形在DIB中的起點
                    0,                  //Bits數組中第一條掃描線的編號。
                    Height,              //欲復制的掃描線數量
                    Bits ,               //指向一個緩沖區的指針
                    BmpInfo,            //BITMAPINFO,對Bits DIB的格式和顏色進行描述的一個結構
                    DIB_RGB_COLORS);   //顏色表包含了RGB顏色

  DeleteObject(Handle);  //刪除GDI對象
  DeleteObject(Handle2);

  end;


procedure CreateFromhWnd2(hBmp,hBmp2:Integer);
    var Bmp:   TBITMAP;
        hDC :  Integer;
        Prgb:Pointer;
begin
  hDC:=CreateDC('DISPLAY',nil,nil,nil);
  SelectObject(hDC,hBmp);
  GetObject(hBmp,SizeOf(Bmp),@Bmp);
  Width:= Bmp.bmWidth;
  Height:=Bmp.bmHeight;

  with BmpHeader do
  begin
    biSize:=SizeOf(BmpHeader);
    biWidth:=Width;
    biHeight:=- Height;
    biPlanes:=1;
    biBitCount:=24;
    biCompression:=BI_RGB;
  end;
  BmpInfo.bmiHeader:=BmpHeader;

    setlength(RGB1, Width*Height ) ;
    setlength(RGB2, Width*Height ) ;
     Prgb:=@RGB1[0];
    Handle:=CreateDIBSection(0,BmpInfo,
                   DIB_RGB_COLORS,Prgb ,0,0);

     Prgb:=@RGB2[0];
    Handle2:=CreateDIBSection(0,BmpInfo,
                   DIB_RGB_COLORS, Prgb ,0,0);

  GetDIBits(hDC,hBmp,0,Height,@RGB1[0],
            BmpInfo,DIB_RGB_COLORS);
   GetDIBits(hDC,hBmp2,0,Height,@RGB2[0],
             BmpInfo,DIB_RGB_COLORS);

  DeleteDC(hDC);
end;

procedure BlendPic2(hBmp,hBmp2,hDC,Proportion :Integer);
  var   x   : Integer;
        p,p2:Single;
begin
   CreateFromhWnd2(hBmp,hBmp2);
   p2:= Proportion/5;
   p:=2-p2;
   for x:=0 to high(RGB1)  do
    begin
       RGB1[x].r:=  Trunc((RGB1[x].r*p  +  RGB2[x].r*p2) / 2 ) ;
       RGB1[x].g:=  Trunc((RGB1[x].g*p  +  RGB2[x].g*p2) / 2 ) ;
       RGB1[x].b:=  Trunc((RGB1[x].b*p  +  RGB2[x].b*p2) / 2 ) ;
    end;

  SetDIBitsToDevice(hDC,0,0,Width,Height,0,0,0,Height,@RGB1[0],
                    BmpInfo,DIB_RGB_COLORS);

   setlength(RGB1, 0) ;
   setlength(RGB2, 0) ;
  DeleteObject(Handle);   
  DeleteObject(Handle2);

  end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品天干天干在观线| 91精品国产麻豆国产自产在线| 麻豆一区二区三| 亚洲视频1区2区| 亚洲欧美区自拍先锋| 国产精品美女久久福利网站| 国产日韩av一区二区| 国产欧美日韩不卡| 国产精品乱人伦| 亚洲免费成人av| 午夜视频一区二区| 麻豆精品久久精品色综合| 久久综合综合久久综合| 国内精品在线播放| 国产成人av一区二区| 99精品视频在线播放观看| 在线中文字幕一区二区| 欧美日韩一区在线观看| 欧美色视频在线观看| 日韩你懂的在线播放| 久久久精品日韩欧美| 中文字幕在线一区| 亚洲sss视频在线视频| 奇米在线7777在线精品| 高清国产午夜精品久久久久久| 成人国产精品视频| 欧美日韩精品电影| 2023国产一二三区日本精品2022| 国产精品嫩草久久久久| 亚洲一区二区视频在线观看| 狠狠色综合日日| 色综合视频一区二区三区高清| 欧美人xxxx| 中文在线一区二区| 午夜精品影院在线观看| 国产精品资源网| 在线观看三级视频欧美| 精品国产伦理网| 亚洲男人的天堂av| 国内精品第一页| 欧洲色大大久久| 久久亚洲二区三区| 亚洲国产你懂的| 国产91精品一区二区麻豆网站| 欧美日韩综合不卡| 国产精品久久久久久久久晋中 | 韩日精品视频一区| 色域天天综合网| 久久亚洲影视婷婷| 亚洲成人自拍偷拍| 成人福利视频网站| 精品国产乱码久久久久久蜜臀| 曰韩精品一区二区| 成人网在线免费视频| 欧美一卡二卡三卡四卡| 亚洲日本成人在线观看| 福利电影一区二区三区| 日韩一区二区免费在线电影 | 欧美手机在线视频| 国产日韩精品久久久| 另类成人小视频在线| 在线看一区二区| 亚洲欧洲成人自拍| 国产成人av一区二区三区在线观看| 欧美一区二区三区免费在线看| 一区二区三区蜜桃网| 91亚洲国产成人精品一区二三| www久久精品| 久久成人免费日本黄色| 日韩一卡二卡三卡四卡| 日本不卡一区二区三区| 欧美夫妻性生活| 天天综合天天做天天综合| 在线亚洲一区二区| 亚洲免费观看高清完整版在线观看熊| 国产风韵犹存在线视精品| 久久久精品免费免费| 国产不卡免费视频| 中文av一区特黄| av在线不卡网| 亚洲青青青在线视频| 色婷婷综合久久久中文字幕| 亚洲日本一区二区三区| 欧美综合一区二区| 午夜国产精品一区| 日韩一区二区不卡| 国产在线精品一区二区不卡了| 亚洲精品在线一区二区| 国产高清在线精品| 亚洲精品欧美二区三区中文字幕| 欧美午夜宅男影院| 日韩国产在线观看| 久久蜜桃香蕉精品一区二区三区| 国产成人av福利| 亚洲精品亚洲人成人网| 6080日韩午夜伦伦午夜伦| 久久99精品国产.久久久久| 欧美激情中文字幕| 色噜噜夜夜夜综合网| 午夜精品久久久久久久99樱桃| 91麻豆精品久久久久蜜臀| 久久成人免费日本黄色| 国产精品欧美久久久久一区二区 | 亚洲成av人片在www色猫咪| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲成人你懂的| 精品999久久久| 一本大道久久a久久精二百| 日韩电影在线一区二区三区| 久久久久久久免费视频了| 97se狠狠狠综合亚洲狠狠| 日韩精品久久理论片| 国产精品免费视频观看| 91精品婷婷国产综合久久性色| 国产很黄免费观看久久| 午夜伦理一区二区| 国产精品天干天干在观线| 欧美一区二区黄| 91首页免费视频| 国产一区二区伦理片| 一区二区不卡在线视频 午夜欧美不卡在| 欧美一区二区三区男人的天堂| 97久久精品人人做人人爽50路 | 欧美一卡在线观看| 99久久婷婷国产精品综合| 久久国产精品色| 亚洲中国最大av网站| 中文文精品字幕一区二区| 欧美一区二区三区啪啪| 欧美在线短视频| av亚洲精华国产精华精华| 免费看欧美美女黄的网站| 亚洲欧美偷拍三级| 国产精品人人做人人爽人人添| 91精品国产91久久久久久最新毛片| 懂色av一区二区在线播放| 久久精品国产澳门| 日日嗨av一区二区三区四区| 亚洲精品国产精华液| 国产精品网友自拍| 国产精品天干天干在线综合| www欧美成人18+| 日韩欧美另类在线| 欧美一卡二卡三卡四卡| 欧美日韩aaa| 欧美理论在线播放| 欧美午夜精品久久久久久超碰 | 国产麻豆一精品一av一免费| 麻豆一区二区三| 蜜桃av噜噜一区二区三区小说| 午夜精品影院在线观看| 亚洲18影院在线观看| 樱花影视一区二区| 亚洲一区二区三区三| 亚洲国产美国国产综合一区二区 | 欧美性猛交一区二区三区精品| 色综合视频一区二区三区高清| av亚洲产国偷v产偷v自拍| 99精品国产热久久91蜜凸| 成人免费高清在线观看| 99这里都是精品| 色综合久久66| 欧美人与性动xxxx| 欧美一卡2卡3卡4卡| 精品久久99ma| 国产亚洲综合在线| 亚洲欧洲av色图| 亚洲国产成人tv| 久久电影网站中文字幕| 国产成人在线电影| 色婷婷精品大视频在线蜜桃视频| 91精彩视频在线| 日韩三级中文字幕| 国产日产欧美精品一区二区三区| 国产精品毛片大码女人| 亚洲夂夂婷婷色拍ww47| 日韩国产一区二| 成人av在线观| 欧美日韩精品欧美日韩精品一 | 91精品国产色综合久久 | 东方欧美亚洲色图在线| 91年精品国产| 91精品国产福利| 中文字幕精品在线不卡| 一区二区三区四区激情| 美女被吸乳得到大胸91| 成人动漫一区二区三区| 欧美无砖砖区免费| 久久亚洲精品小早川怜子| 亚洲黄色性网站| 国产在线精品免费| 91福利在线导航| 国产亚洲欧美一级| 亚洲午夜在线观看视频在线| 精品一区二区三区不卡| 欧洲一区二区av| 欧美激情一二三区| 日韩 欧美一区二区三区| 91在线高清观看| 久久综合999|