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

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

?? wmutil.pas

?? 傳奇客戶端
?? PAS
字號:
unit wmutil;

interface

uses
  Windows, SysUtils, Classes, Graphics, Controls, DIB,
  DXDraws, DXClass;

type

   TWMImageHeader = record
      Title: String[40];        //'WEMADE Entertainment inc.'
      ImageCount: integer;
      ColorCount: integer;
      PaletteSize: integer;
      VerFlag:integer;
   end;

{
   TWMImageHeader = record
      Title: string[40];        //'WEMADE Entertainment inc.'
      ImageCount: integer;
      ColorCount: integer;
      PaletteSize: integer;
   end;
}
   PTWMImageHeader = ^TWMImageHeader;

   TWMImageInfo = record
     nWidth    :SmallInt;
     nHeight   :SmallInt;
      px: smallint;
      py: smallint;
      bits: PByte;
   end;
   PTWMImageInfo = ^TWMImageInfo;

   TWMIndexHeader = record
      Title: string[40];        //'WEMADE Entertainment inc.'
      IndexCount: integer;
      VerFlag:integer;
   end;
{
   TWMIndexHeader = record
      Title: string[40];        //'WEMADE Entertainment inc.'
      IndexCount: integer;
   end;
}
   PTWMIndexHeader = ^TWMIndexHeader;

   TWMIndexInfo = record
      Position: integer;
      Size: integer;
   end;
   PTWMIndexInfo = ^TWMIndexInfo;


   TDXImage = record
     nPx          :SmallInt;
     nPy          :SmallInt;
     Surface      :TDirectDrawSurface;
     dwLatestTime :LongWord;
   end;
   pTDxImage = ^TDXImage;


function WidthBytes(w: Integer): Integer;
function PaletteFromBmpInfo(BmpInfo: PBitmapInfo): HPalette;
function  MakeBmp (w, h: integer; bits: Pointer; pal: TRGBQuads): TBitmap;
procedure DrawBits(Canvas: TCanvas; XDest, YDest: integer; PSource: PByte; Width, Height: integer);

implementation


function WidthBytes(w: Integer): Integer;
begin
  Result := (((w * 8) + 31) div 32) * 4;
end;

function PaletteFromBmpInfo(BmpInfo: PBitmapInfo): HPalette;
var
   PalSize, n: Integer;
   Palette: PLogPalette;
begin
     //Allocate Memory for Palette
     PalSize := SizeOf(TLogPalette) + (256 * SizeOf(TPaletteEntry));
     Palette := AllocMem(PalSize);

     //Fill in structure
     with Palette^ do
     begin
          palVersion := $300;
          palNumEntries := 256;
          for n := 0 to 255 do
          begin
               palPalEntry[n].peRed := BmpInfo^.bmiColors[n].rgbRed;
               palPalEntry[n].peGreen := BmpInfo^.bmiColors[n].rgbGreen;
               palPalEntry[n].peBlue := BmpInfo^.bmiColors[n].rgbBlue;
               palPalEntry[n].peFlags := 0;
          end;
     end;
     Result := CreatePalette(Palette^);
     FreeMem(Palette, PalSize);
end;

procedure CreateDIB256(var Bmp: TBitmap; BmpInfo: PBitmapInfo; Bits: PByte);
var
   dc, MemDc: HDC;
   OldPal: HPalette;
begin
   dc:=0;
   MemDc:=0;//jacky
   //First Release Handle and Palette from BMP
   DeleteObject(Bmp.ReleaseHandle);
   DeleteObject(Bmp.ReleasePalette);

   try
      dc := GetDC(0);
      try
         MemDC := CreateCompatibleDC(DC);
         DeleteObject(SelectObject(MemDC, CreateCompatibleBitmap(dc, 1, 1)));

         OldPal := 0;
         Bmp.Palette := PaletteFromBmpInfo(BmpInfo);
         OldPal := SelectPalette(MemDc, Bmp.Palette, False);
         RealizePalette(MemDc);
         try
            Bmp.Handle := CreateDIBitmap(MemDc, BmpInfo^.bmiHeader, CBM_INIT,
                     Pointer(Bits), BmpInfo^, DIB_RGB_COLORS);
         finally
            if OldPal <> 0 then
               SelectPalette(MemDc, OldPal, True);
         end;
      finally
         if MemDC <> 0 then
            DeleteDC(MemDC);
      end;
   finally
      if dc <> 0 then
         ReleaseDC(0, DC);
   end;
   if Bmp.Handle = 0 then
      Exception.Create('CreateDIBitmap failed');
end;

function  MakeBmp (w, h: integer; bits: Pointer; pal: TRGBQuads): TBitmap;
var
   i, k: integer;
   BmpInfo: PBitmapInfo;
   HeaderSize: Integer;
   bmp: TBitmap;
begin
   HeaderSize := SizeOf(TBitmapInfo) + (256 * SizeOf(TRGBQuad));
   GetMem (BmpInfo, HeaderSize);
   for i:=0 to 255 do begin
      BmpInfo.bmiColors[i] := pal[i];
   end;
   with BmpInfo^.bmiHeader do begin
      biSize := SizeOf(TBitmapInfoHeader);
      biWidth := w;
      biHeight := h;
      biPlanes := 1;
      biBitCount := 8; //8bit
      biCompression := BI_RGB;
      biClrUsed := 0;
      biClrImportant := 0;
   end;
   Bmp := TBitmap.Create;
   CreateDIB256 (Bmp, BmpInfo, bits);
   FreeMem (BmpInfo);
   Result := Bmp;
end;

procedure DrawBits(Canvas: TCanvas; XDest, YDest: integer; PSource: PByte; Width, Height: integer);
var
  HeaderSize : integer;
  bmpInfo : PBitmapInfo;
begin
  if PSource = nil then exit;

  HeaderSize := Sizeof(TBitmapInfo) + (256 * Sizeof(TRGBQuad));
  BmpInfo := AllocMem(HeaderSize);
  if BmpInfo = nil then raise Exception.Create('TNoryImg: Failed to allocate a DIB');
  with BmpInfo^.bmiHeader do begin
    biSize        := SizeOf(TBitmapInfoHeader);
    biWidth       := Width;
    biHeight      := -Height;
    biPlanes      := 1;
    biBitCount    := 8;
    biCompression := BI_RGB;
    biClrUsed     := 0;
    biClrImportant:= 0;
  end;
  SetDIBitsToDevice(Canvas.Handle, XDest, YDest, Width, Height, 0, 0, 0, Height,
                    PSource, BmpInfo^, DIB_RGB_COLORS);
  FreeMem(BmpInfo, HeaderSize);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放国产精品二区一二区四区| 色综合久久99| 日本中文字幕一区| 五月激情综合色| 亚洲综合免费观看高清在线观看| 国产精品久久久久永久免费观看| 欧美国产一区二区| 最新中文字幕一区二区三区| 亚洲精品欧美专区| 偷拍与自拍一区| 麻豆91在线观看| 国产精品乡下勾搭老头1| 成人黄色av电影| 欧美午夜影院一区| 精品视频在线视频| 精品欧美黑人一区二区三区| 久久久99精品久久| 亚洲日本一区二区三区| 亚洲一区视频在线观看视频| 日韩在线观看一区二区| 国产一区二区毛片| 成熟亚洲日本毛茸茸凸凹| 99久久免费精品高清特色大片| 91美女在线观看| 欧美日韩精品是欧美日韩精品| 91精品国产欧美一区二区18| 精品久久久久久久久久久久包黑料 | 亚洲精品视频一区| 一区二区三区美女视频| 秋霞电影网一区二区| 久热成人在线视频| 99久久夜色精品国产网站| 欧美日韩久久久一区| 久久综合久久鬼色中文字| 亚洲特级片在线| 六月丁香婷婷色狠狠久久| 成人免费不卡视频| 在线电影国产精品| 国产精品伦理在线| 午夜日韩在线电影| 不卡一区二区中文字幕| 欧美一区二区三区日韩| 综合激情成人伊人| 国产精品99久久久| 欧美日韩免费在线视频| 中文无字幕一区二区三区| 一级做a爱片久久| 国产成人精品一区二区三区四区 | 国内精品国产成人| 日本丶国产丶欧美色综合| 精品福利一区二区三区免费视频| 国产精品嫩草影院com| 免费在线一区观看| 欧美日韩激情在线| 亚洲精品五月天| 成人亚洲一区二区一| 欧美成人精品1314www| 亚洲成国产人片在线观看| 成人国产精品视频| 国产亚洲精品资源在线26u| 日本va欧美va瓶| 欧美日韩久久久| 亚洲国产精品久久久久秋霞影院 | 精品一区免费av| 欧美日韩极品在线观看一区| 日韩理论片中文av| 懂色av中文字幕一区二区三区| 日韩午夜激情免费电影| 日韩高清欧美激情| 在线观看亚洲专区| 亚洲精品欧美专区| 色综合网站在线| 亚洲精品成人悠悠色影视| 成人激情电影免费在线观看| 久久精品日产第一区二区三区高清版| 另类小说视频一区二区| 精品久久人人做人人爰| 久久精品国产77777蜜臀| 精品久久久久久久久久久院品网 | 粉嫩av一区二区三区| 精品少妇一区二区三区| 国产麻豆一精品一av一免费 | 五月天激情小说综合| 欧美日韩视频在线一区二区| 午夜精品福利一区二区蜜股av| 7777精品伊人久久久大香线蕉的| 日韩精品一二三四| 欧美变态tickle挠乳网站| 国产一区激情在线| 国产精品传媒视频| 91国偷自产一区二区使用方法| 亚洲成人午夜电影| 精品奇米国产一区二区三区| 成人免费高清视频在线观看| 亚洲狠狠丁香婷婷综合久久久| 欧美绝品在线观看成人午夜影视| 青娱乐精品视频在线| 国产无人区一区二区三区| 成人综合婷婷国产精品久久 | 日韩一卡二卡三卡国产欧美| 激情久久久久久久久久久久久久久久| 久久久www成人免费毛片麻豆| av中文一区二区三区| 亚洲第一综合色| 久久久久久久久久电影| 91在线视频网址| 美女在线视频一区| 国产精品嫩草久久久久| 欧美巨大另类极品videosbest | 欧美va天堂va视频va在线| 国产一区二区三区在线观看精品| 亚洲婷婷在线视频| 日韩精品一区二区三区在线观看| 成人黄色av网站在线| 日日夜夜免费精品| 国产精品丝袜久久久久久app| 欧美亚洲一区二区三区四区| 国产精品综合久久| 亚洲va天堂va国产va久| 中文字幕欧美国产| 日韩一级高清毛片| 欧美伊人久久久久久午夜久久久久| 久久99久久精品| 午夜精品久久久久久久蜜桃app| 欧美国产一区二区| 日韩精品一区二区三区中文精品| 欧美午夜精品久久久久久孕妇 | 久久久无码精品亚洲日韩按摩| 欧美日韩在线观看一区二区| 国产成人精品在线看| 免费观看在线综合色| 亚洲一区二区三区小说| 国产精品私人影院| 久久精品一区二区三区四区| 欧美一区二区精品| 欧美日韩三级在线| 欧美性做爰猛烈叫床潮| 91在线porny国产在线看| 国产成人av网站| 国产乱码精品一区二区三| 久久国产尿小便嘘嘘| 免费人成在线不卡| 日欧美一区二区| 亚洲免费伊人电影| 最新中文字幕一区二区三区| 国产精品欧美精品| 欧美国产欧美综合| 国产精品色呦呦| 国产精品女主播在线观看| 国产人成亚洲第一网站在线播放 | 丁香六月久久综合狠狠色| 久久99精品久久久久| 精品在线观看视频| 国产一区视频网站| 成人免费毛片app| av日韩在线网站| 色嗨嗨av一区二区三区| 欧洲一区二区三区在线| 欧美日韩久久一区二区| 91麻豆精品国产自产在线观看一区| 欧美精品亚洲二区| 欧美成人一区二区三区| 久久久久久一级片| 欧美经典一区二区| 亚洲视频一区二区在线观看| 亚洲一二三四区| 免费日韩伦理电影| 国产九九视频一区二区三区| 成人免费看黄yyy456| av成人老司机| 欧美精品三级日韩久久| 国产精品第四页| 偷窥国产亚洲免费视频| 奇米一区二区三区| 成人高清视频免费观看| 欧美日韩亚洲综合在线 | 中文成人综合网| 亚洲精品老司机| 青青青爽久久午夜综合久久午夜| 久久99九九99精品| 99精品1区2区| 亚洲精品欧美激情| 偷拍一区二区三区四区| 国产成人免费视频一区| 欧美三级日本三级少妇99| 亚洲精品一区在线观看| 亚洲一区中文日韩| 九九**精品视频免费播放| www.亚洲激情.com| 欧美成人三级电影在线| 日韩毛片在线免费观看| 麻豆精品一区二区综合av| 不卡视频一二三四| 欧美日韩国产免费| 亚洲欧洲韩国日本视频| 精品在线你懂的| 91麻豆精品国产91久久久久久久久 | 成人av在线资源网站| 日韩一区二区三区免费看| 国产精品天天看|