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

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

?? unit2.pas

?? 基于delphi的將16色圖片轉(zhuǎn)化為256色的工程文件。
?? PAS
字號:
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)計顏色使用頻率
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);    //計算顏色的使用次數(shù)
        Inc(Ptr);
      end;
    end;
end;//procedure CountColor

// 清除使用次數(shù)為 0 的顏色數(shù)據(jù),返回值為當(dāng)前圖像中顏色的種類
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)計的信息調(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)計顏色的使用頻率
  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.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品91久久久中77777| 色婷婷综合久久久久中文一区二区 | 99久久er热在这里只有精品66| 麻豆一区二区99久久久久| 日韩激情一二三区| 日韩va亚洲va欧美va久久| 亚洲电影在线播放| 亚洲伊人伊色伊影伊综合网| 亚洲一区二区三区四区的| 亚洲国产成人高清精品| 日韩电影在线观看一区| 麻豆精品一二三| 国产精品一区在线观看你懂的| 国产呦精品一区二区三区网站| 国产综合色在线| 国产v日产∨综合v精品视频| www.日韩精品| 成人视屏免费看| 黑人精品欧美一区二区蜜桃 | 精品黑人一区二区三区久久| 欧美一个色资源| 国产视频亚洲色图| 亚洲欧洲精品一区二区三区不卡| 一区二区三区欧美激情| 视频一区二区三区中文字幕| 激情偷乱视频一区二区三区| 久久91精品国产91久久小草 | 免费欧美在线视频| 久久69国产一区二区蜜臀| 床上的激情91.| 欧美视频你懂的| 日韩一区二区三区观看| 欧美国产综合色视频| 亚洲国产欧美在线人成| 极品销魂美女一区二区三区| 一本到不卡免费一区二区| 日韩视频在线观看一区二区| 国产精品丝袜91| 毛片av一区二区| 日本国产一区二区| 国产亚洲精品7777| 日韩影视精彩在线| 色哟哟国产精品| 欧美成人aa大片| 一区二区三区四区在线免费观看| 蜜桃视频第一区免费观看| 成人黄色a**站在线观看| 欧美日韩精品电影| 亚洲欧美二区三区| 国产精品18久久久久| 欧美美女bb生活片| 亚洲色图20p| 成人18视频在线播放| 精品国产一二三| 日本美女视频一区二区| 在线免费观看日本一区| 久久久久国产精品麻豆| 蜜臀av性久久久久av蜜臀妖精 | 精品一区二区在线免费观看| 欧美日韩一级大片网址| 亚洲日本在线天堂| 成人黄色国产精品网站大全在线免费观看| 欧美一区二区在线免费观看| 一区二区三区四区视频精品免费 | 日韩美女视频在线| 青青草97国产精品免费观看无弹窗版| 色综合激情五月| 亚洲六月丁香色婷婷综合久久 | 午夜视频在线观看一区二区 | 久久婷婷国产综合国色天香| 日韩av中文字幕一区二区| 欧美撒尿777hd撒尿| 亚洲一二三区在线观看| 欧美视频在线观看一区| 亚洲国产一区二区在线播放| 欧美色视频在线| 日韩中文字幕麻豆| 91精品婷婷国产综合久久| 亚洲国产美女搞黄色| 91黄视频在线| 午夜久久久影院| 91精品国产综合久久精品麻豆| 日日噜噜夜夜狠狠视频欧美人| 91精品国产综合久久国产大片| 日韩中文字幕区一区有砖一区| 日韩欧美精品在线| 国产成人在线免费| 国产精品久久久久久久浪潮网站| 成人av电影在线| 一卡二卡三卡日韩欧美| 欧美人xxxx| 国产在线麻豆精品观看| 国产亲近乱来精品视频| 国产a级毛片一区| 亚洲欧美日韩中文播放| 色噜噜狠狠成人网p站| 亚洲美女免费视频| 91精品国产91久久久久久最新毛片| 午夜视频久久久久久| 精品精品国产高清a毛片牛牛 | 国产精品理伦片| 欧洲亚洲国产日韩| 秋霞影院一区二区| 国产亚洲一区二区三区在线观看 | 成人av在线影院| 樱花影视一区二区| 91精品国产品国语在线不卡| 国产女同性恋一区二区| 欧美综合欧美视频| 国产在线精品一区二区夜色| 中文一区二区完整视频在线观看| 色噜噜狠狠一区二区三区果冻| 久久精品二区亚洲w码| 国产精品日产欧美久久久久| 欧美在线观看一二区| 亚洲福利一二三区| 国产亚洲欧美激情| 欧美美女黄视频| av中文一区二区三区| 日本亚洲一区二区| 中文字幕欧美一| 欧美不卡一区二区三区四区| 91浏览器在线视频| 韩国精品久久久| 亚洲第一激情av| 综合久久综合久久| 精品久久久久久无| 欧美日韩国产成人在线91| 国产精品亚洲一区二区三区妖精 | 亚洲综合久久av| 久久久青草青青国产亚洲免观| 欧美色视频在线观看| 国产成人免费av在线| 久久精品久久精品| 午夜在线电影亚洲一区| 中文字幕日韩av资源站| 国产视频视频一区| 久久综合色综合88| 欧美一区二区黄色| 欧美视频日韩视频| 在线精品亚洲一区二区不卡| 粉嫩13p一区二区三区| 精彩视频一区二区三区| 免费人成在线不卡| 日本最新不卡在线| 亚洲成人av在线电影| 亚洲黄色性网站| 成人免费在线视频观看| 中文字幕高清不卡| 国产欧美日韩精品在线| 欧美sm美女调教| 精品剧情在线观看| 欧美变态凌虐bdsm| 日韩精品自拍偷拍| 欧美成人精品二区三区99精品| 欧美精品日日鲁夜夜添| 欧美精品123区| 777色狠狠一区二区三区| 91精品午夜视频| 日韩欧美久久一区| 久久精品人人做人人爽97| 久久久国产精品午夜一区ai换脸| 久久看人人爽人人| 国产精品久久久久久久蜜臀| 自拍偷自拍亚洲精品播放| 亚洲欧美一区二区久久| 亚洲精品成人精品456| 亚洲国产综合视频在线观看| 午夜精品一区二区三区电影天堂 | 色美美综合视频| 欧美日韩国产片| 欧美不卡一区二区三区四区| 久久久亚洲精华液精华液精华液| 欧美激情一区三区| 亚洲免费三区一区二区| 污片在线观看一区二区| 精品一区二区三区不卡| 成人激情开心网| 欧美婷婷六月丁香综合色| 日韩午夜在线播放| 国产精品嫩草久久久久| 亚洲精品久久久蜜桃| 婷婷久久综合九色综合绿巨人| 久久91精品国产91久久小草| 99re成人精品视频| 在线播放视频一区| 中文字幕av免费专区久久| 亚洲大片一区二区三区| 久久99久久99精品免视看婷婷| av一二三不卡影片| 91精品国产综合久久国产大片| 国产亚洲欧洲一区高清在线观看| 亚洲欧洲综合另类| 久久国产人妖系列| 色哦色哦哦色天天综合| 久久午夜老司机| 亚洲综合999| 成人激情小说乱人伦| 宅男在线国产精品| 亚洲摸摸操操av|