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

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

?? unit2.pas

?? 《Delphi百例》源碼?禗elphi百例》源碼
?? PAS
字號(hào):
unit Unit2;

interface
uses
   Windows, Graphics;
type
  PRGBColor = ^TRGBColor;
  TRGBColor = record
    B, G, R: Byte;
  end;
  PByte = ^Byte;
  LColor = Record
    Color ,Times : Integer;
  end;

procedure Convert(SBitmap : TBitMap ; var DBitMap : TBitMap) ;

implementation

var
    ColorCount : array[0..4096] of LColor; //為記錄顏色使用頻率的數(shù)組
    ColorTable : array[0..4096] of Byte; // 為記錄顏色索引值的數(shù)組

//統(tǒng)計(jì)顏色使用頻率
procedure CountColor(BitMap : TBitMap;Var ClrCount : array of LColor);   
var
    Ptr : PRGBColor;
    i,j : Integer;
    CIndex : Integer;
begin
  for i := 0 to 4096 do         // 初始化ColorCount數(shù)組
  begin
    ClrCount[i].Color := i;
    ClrCount[i].Times := 0;
  end;

  with BitMap do
    for i := 0 to ( Height - 1 ) do
    begin
      Ptr := ScanLine[i];
      for j := 0 to (Width - 1) do
      begin //取 R、G、B三種顏色的前4位組成12位,共4096種顏色
        CIndex := (Ptr.R and $0F0) shl 4;    
        CIndex := CIndex + (Ptr.G and $0F0);
        CIndex := CIndex + ((Ptr.B and $0F0) shr 4);
        Inc(ClrCount[CIndex].Times,1);    //計(jì)算顏色的使用次數(shù)
        Inc(Ptr);
      end;
    end;
end;//procedure CountColor

// 清除使用次數(shù)為 0 的顏色數(shù)據(jù),返回值為當(dāng)前圖像中顏色的種類(lèi)
function Delzero(Var ClrCount : array of LColor): Integer;
var i,CIndex : Integer;
begin
  CIndex := 0;
  for i := 0 to 4096 do
  begin
    if (ClrCount[i].Times <> 0) then
    begin
      ClrCount[CIndex] := ClrCount[i];
      ClrCount[i].Times := 0;
      Inc(CIndex);
    end;
  end;
  Result := CIndex;
end;//function Delzero

// 快速排序, 將各種顏色 按使用的頻率排序(Hight -- Low )
procedure Sort(var A: array of LColor; Top : Integer);

  procedure QuickSort(var A: array of LColor; iLo, iHi: Integer);
  var
    Lo, Hi, Mid: Integer;
    Temp : LColor;
  begin
    Lo := iLo;
    Hi := iHi;
    Mid := A[(Lo + Hi) div 2].Times;
    repeat
      while A[Lo].Times > Mid do Inc(Lo);
      while A[Hi].Times < Mid do Dec(Hi);
      if Lo <= Hi then
      begin
        Temp := A[Lo];
        A[Lo] := A[Hi];
        A[Hi] := Temp;
        Inc(Lo);
        Dec(Hi);
      end;
    until Lo > Hi;
    if Hi > iLo then QuickSort(A, iLo, Hi);
    if Lo < iHi then QuickSort(A, Lo, iHi);
  end;

begin
  QuickSort(A, Low(A), Top);
end;

// 構(gòu)建調(diào)色表
function BuildColorTable(var ClrCount : array of LColor; 
			var Pal :PLogPalette):HPalette;
var i  : Integer;
begin
  Pal.palVersion:=$300;
  Pal.palNumEntries:=256;
  for i := 0 to 255 do
  begin
    Pal.palPalEntry[i].peRed := ((ClrCount[i].Color and $0F00) shr 4) + 7;
    Pal.palPalEntry[i].peGreen := (ClrCount[i].Color and $0F0) + 7;
    Pal.palPalEntry[i].peBlue := ((ClrCount[i].Color and $00F) shl 4) + 7;
    pal.palPalEntry[i].peFlags := 0;
  end;
  Result := CreatePalette(Pal^);
end;


//根據(jù)統(tǒng)計(jì)的信息調(diào)整圖像中的顏色, 將不常用的顏色用常用的顏色代替
procedure AdjustColor(ClrNumber : Integer; ClrCount : array of LColor);
var i ,C,Error,m: Integer;
    CIndex : Byte;
begin
//  for i := 0 to 4096 do ColorTable[i] := 0;
  for i := 0 to 255 do
    ColorTable[ClrCount[i].Color] := i;

  for i := 256 to ClrNumber do
  begin
    Error := 10000;
    CIndex := 0;
    C := ClrCount[i].Color;
    for m := 0 to 255 do
      if abs(ClrCount[m].Color - C) < Error then
        begin
          Error := abs(ClrCount[m].Color - C);
          CIndex := m;
        end;
    ColorTable[ClrCount[i].Color] := CIndex;
  end;
end;//procedure AdjustColor

procedure Convert(SBitmap : TBitMap; var DBitMap: TBitMap) ;
var
    Pal: PLogPalette;
    i , j , t, ColorNumber: integer;
    SPtr : PRGBColor;
    DPtr : PByte;
begin
  if (SBitMap.Empty) then
    Exit;

  CountColor(SBitMap,ColorCount);      //統(tǒng)計(jì)顏色的使用頻率
  ColorNumber := DelZero(ColorCount);  //去處不使用的顏色
  Sort(ColorCount,ColorNumber);       // 將顏色按使用頻率排序
  AdjustColor(ColorNumber,ColorCount);

  With DBitMap do
  begin
    PixelFormat := pf8bit;
    SBitMap.PixelFormat := pf24bit;
    Width := SBitMap.Width;
    Height := SBitMap.Height;

    GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 255);
    BuildColorTable(ColorCount,Pal);
    Palette := BuildColorTable(ColorCount,Pal); // Set DBitMap.Palette
    FreeMem(pal);

    for i := 0 to ( Height - 1 ) do
    begin
      SPtr := SBitMap.ScanLine[i];
      DPtr := ScanLine[i];
      for j := 0 to (Width - 1) do
      begin
        t := (SPtr.R and $0F0) shl 4;
        t := t + (SPtr.G and $0F0);
        t := t + ((SPtr.B and $0F0) shr 4);
        DPtr^ := ColorTable[t];
        Inc(SPtr);
        Inc(DPtr);
      end;      
    end;
    
  end;
end; //procedure Convert

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本丶国产丶欧美色综合| 亚洲午夜国产一区99re久久| 亚洲品质自拍视频| 日韩av电影免费观看高清完整版| 九一九一国产精品| 色综合天天综合| 欧美成人性战久久| 日韩理论在线观看| 国内外成人在线| 99国产精品国产精品久久| 一区二区三区欧美日| 免费看日韩a级影片| av中文字幕亚洲| 欧美日韩美少妇| 中文字幕一区二区三区色视频| 性做久久久久久久久| 粉嫩蜜臀av国产精品网站| 欧美日本免费一区二区三区| 国产色爱av资源综合区| 日本大胆欧美人术艺术动态| 91小视频在线| 精品国产91九色蝌蚪| 亚洲www啪成人一区二区麻豆| caoporn国产精品| 精品国产三级a在线观看| 亚洲成av人片| 色狠狠色噜噜噜综合网| 国产免费成人在线视频| 青青草国产成人99久久| 在线免费观看视频一区| 国产欧美精品在线观看| 久久不见久久见免费视频7| 色婷婷综合久久久久中文一区二区 | 欧美性淫爽ww久久久久无| 久久久噜噜噜久噜久久综合| 日韩黄色免费网站| 欧美亚洲综合久久| 日韩一区在线免费观看| 久久国产精品99精品国产| 欧美日韩精品一区二区三区四区 | av一区二区久久| 久久日韩精品一区二区五区| 天天射综合影视| 欧美午夜免费电影| 一区二区在线观看免费 | 亚洲麻豆国产自偷在线| 成人国产亚洲欧美成人综合网| 精品国产免费久久 | 美腿丝袜亚洲综合| 欧美日韩的一区二区| 一区二区三区四区精品在线视频| 国产成人综合亚洲91猫咪| 欧美日韩aaaaa| 丝袜国产日韩另类美女| 欧美三区免费完整视频在线观看| 国产日产欧产精品推荐色 | 1000精品久久久久久久久| 国产精品一区二区x88av| 日韩精品一区二区三区视频播放 | 成人av网站在线观看| 久久久欧美精品sm网站| 国产乱人伦偷精品视频不卡| 久久精品免费在线观看| 国产一级精品在线| www国产成人免费观看视频 深夜成人网| va亚洲va日韩不卡在线观看| 久久蜜桃香蕉精品一区二区三区| 九九热在线视频观看这里只有精品| 欧美日韩国产欧美日美国产精品| 亚洲va在线va天堂| 日韩欧美一区在线| 日韩不卡一区二区| 91精品国产综合久久久久| 日韩精品乱码av一区二区| 欧美一区国产二区| 婷婷六月综合亚洲| 日韩欧美国产综合一区 | 国产精品久久久99| 色狠狠av一区二区三区| 日韩精品国产欧美| 国产网红主播福利一区二区| 色综合久久中文综合久久牛| 日韩国产精品久久| 国产亚洲综合在线| 欧美在线你懂的| 韩国女主播成人在线| ●精品国产综合乱码久久久久| 欧美日本在线播放| 国产成人激情av| 亚洲777理论| 国产欧美视频一区二区| 在线国产亚洲欧美| 极品瑜伽女神91| 亚洲图片欧美视频| 久久精品在这里| 欧美日韩在线观看一区二区 | 伊人开心综合网| 日韩欧美国产一区在线观看| 99久久国产综合精品女不卡| 天天综合色天天| 国产精品国产三级国产aⅴ入口| 91精品国产综合久久香蕉的特点 | 精品一区二区三区在线播放视频 | 亚洲三级免费电影| 精品国产一区二区三区四区四 | 成人性视频免费网站| 婷婷久久综合九色综合绿巨人| 国产精品五月天| 日韩午夜激情av| 国产视频视频一区| 欧美剧情电影在线观看完整版免费励志电影| 国产真实乱偷精品视频免| 亚洲国产综合视频在线观看| 中文字幕高清不卡| 日韩精品一区二| 欧美日韩大陆一区二区| av亚洲产国偷v产偷v自拍| 久久精品久久综合| 亚洲一区二区三区视频在线播放 | 国产精品免费丝袜| 亚洲精品在线电影| 欧美日韩午夜在线| av高清不卡在线| 国产一区二区三区黄视频 | 日本韩国精品在线| 国产精品一区二区三区99| 日韩成人精品在线观看| 亚洲精品大片www| 中文字幕免费一区| 欧美大片顶级少妇| 欧美日韩国产不卡| 91极品美女在线| 91亚洲精华国产精华精华液| 国产成人福利片| 国产主播一区二区三区| 日韩精品一区第一页| 亚洲午夜影视影院在线观看| 综合欧美一区二区三区| 国产欧美日韩一区二区三区在线观看| 精品欧美一区二区久久| 在线不卡欧美精品一区二区三区| 91亚洲午夜精品久久久久久| 成人a免费在线看| 成人伦理片在线| 高清国产一区二区三区| 国产馆精品极品| 国产精品99久久久| 国产成人激情av| 国产成人免费视频网站| 国内精品国产成人国产三级粉色| 蜜臀va亚洲va欧美va天堂| 日韩精品电影一区亚洲| 日韩电影在线看| 麻豆精品在线播放| 老司机精品视频在线| 麻豆精品在线看| 老司机精品视频线观看86| 老汉av免费一区二区三区| 久久 天天综合| 国产高清久久久| 岛国精品在线观看| 成人app网站| 色综合色狠狠天天综合色| 99麻豆久久久国产精品免费优播| 99视频一区二区| 91在线一区二区三区| 91蝌蚪porny| 在线观看网站黄不卡| 欧美在线短视频| 欧美日韩精品系列| 日韩午夜在线影院| 久久精品在线免费观看| 国产精品热久久久久夜色精品三区 | 91亚洲午夜精品久久久久久| 色综合久久天天| 欧美日韩精品一区视频| 日韩一级二级三级精品视频| 久久综合国产精品| 中文字幕av一区 二区| 亚洲欧美综合在线精品| 一区二区三区四区中文字幕| 亚洲一二三区视频在线观看| 日本午夜精品视频在线观看| 激情六月婷婷综合| 精品国产一二三| 国产亚洲欧美在线| 亚洲视频 欧洲视频| 亚洲狠狠爱一区二区三区| 免费不卡在线观看| 成人午夜在线播放| 欧美性猛交xxxxxx富婆| 7777精品伊人久久久大香线蕉完整版 | 国产欧美精品一区aⅴ影院| 中文字幕亚洲成人| 天堂av在线一区| 国产露脸91国语对白| 91理论电影在线观看| 欧美美女直播网站| 国产日韩欧美一区二区三区乱码| 亚洲另类色综合网站|