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

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

?? sgraphutils.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
        end

      end;
    end
  end;

  for Y := 0 to Result.Height - 1 do begin
    S1 := Result.ScanLine[Y];
    for X := 0 to Result.Width - 1 do begin
      if Equal(CurX, BlackColor) then begin
        S1[X] := TransColor;
      end;
    end
  end;
end;


procedure DisableBmp(SrcBmp: TBitmap);
var
  Bmp, TempBmp : TBitmap;
  tc : TColor;
  tcrgb : TsRGB;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Assign(SrcBmp);
    Bmp.PixelFormat := pf24bit;
    tc := Bmp.Canvas.Pixels[0, Bmp.Height - 1];
    tcrgb.R := GetRValue(tc);
    tcrgb.G := GetGValue(tc);
    tcrgb.B := GetBValue(tc);
    BWBmp(Bmp, 100); // ??? Want to make more universal ???
    TempBmp := CreateDisBitmap(Bmp, tcrgb);
    try
//      SrcBmp.Assign(Bmp);
      SrcBmp.Assign(TempBmp);
    finally
      FreeAndNil(TempBmp);
    end;
  finally
    FreeAndNil(Bmp);
  end;
end;

procedure DisBmpColor(SrcBmp: TBitmap; Color : TColor);
var
  Bmp, TempBmp : TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Assign(SrcBmp);
    Bmp.PixelFormat := pf24bit;
    BWBmp(Bmp, 500);
    TempBmp := CreateDisabledBitmapEx(Bmp, ColorToRGB(clBlack), ColorToRGB(Color), clWhite, ColorToRGB(clGray), True);
    try
      SrcBmp.Assign(TempBmp);
    finally
      FreeAndNil(TempBmp);
    end;
  finally
    FreeAndNil(Bmp);
  end;
end;

procedure MonoBmp(SrcBmp: TBitmap);
var
  S1 : PRGBArray;
  X, Y, w, h: Integer;
  BlackColor : TsRGB;
begin
  BlackColor.R := 0;
  BlackColor.G := 0;
  BlackColor.B := 0;
  h := SrcBmp.Height - 1;
  w := SrcBmp.Width - 1;

  for Y := 0 to h do begin
    S1 := SrcBmp.ScanLine[Y];
    for X := 0 to w do begin
      if S1[X].R + S1[X].G + S1[X].B <> 765 then begin
        S1[X] := BlackColor;
      end;
    end
  end;
end;

procedure BWBmp(SrcBmp: TBitmap; Delta : integer);
var
  S1 : PRGBArray;
  X, Y: Integer;
  d : integer;
  h, w : integer;
begin
  d := 65536 * Delta;
  h := SrcBmp.Height - 1;
  w := SrcBmp.Width - 1;
  for Y := 0 to h do begin
    S1 := SrcBmp.ScanLine[Y];
    for X := 0 to w do begin
      if S1[X].R * S1[X].G * S1[X].B < d then begin
        S1[X].R := 0;
        S1[X].G := 0;
        S1[X].B := 0;
      end
      else begin
        S1[X].R := 255;
        S1[X].G := 255;
        S1[X].B := 255;
      end;
    end
  end;
end;

procedure BorderByMask(SrcBmp, MskBmp: TBitmap; ColorTop, ColorBottom: TsColor);
var
  S1, S2, S2t, S2b : PRGBArray;
  {l, r, }t, b : boolean;
  X, Y, sw, sh: Integer;
  function BlackPoint(c: TsRGB) : boolean;
  begin
    Result := c.R + c.G + c.B = 0;
  end;
begin
  S2t := nil;
  S2b := nil;
  sh := SrcBmp.Height - 1;
  sw := SrcBmp.Width - 1;
  if SrcBmp.Height <> MskBmp.Height then Exit;
  if SrcBmp.Width <> MskBmp.Width then Exit;
  if SrcBmp.Height < 1 then Exit;
  if SrcBmp.Width < 1 then Exit;
  for Y := 0 to sh do begin
    S1 := SrcBmp.ScanLine[Y];
    S2 := MskBmp.ScanLine[Y];
    if Y > 0 then begin
      S2t := MskBmp.ScanLine[Y - 1];
      t := True;
    end else t := False;
    if Y < SrcBmp.Height - 1 then begin
      S2B := MskBmp.ScanLine[Y + 1];
      b := True;
    end else b := False;

    for X := 0 to sw do begin
      if BlackPoint(S2[X]) then begin
        if ((X > 0) and not BlackPoint(S2[X - 1])) or (X = 0) or (t and not BlackPoint(S2t[X])) or not t then begin
          S1[X].R := ColorTop.R;
          S1[X].G := ColorTop.G;
          S1[X].B := ColorTop.B;
        end
        else
        if ((X < SrcBmp.Width - 1) and not BlackPoint(S2[X + 1])) or (X = SrcBmp.Width - 1) or (b and not BlackPoint(S2b[X])) or not b then begin
          S1[X].R := ColorBottom.R;
          S1[X].G := ColorBottom.G;
          S1[X].B := ColorBottom.B;
        end;
      end;
    end
  end;
end;

procedure FillDC(DC: hWnd; aRect: TRect; Color: TColor);
var
  OldBrush, NewBrush : hBrush;
  SavedDC : hWnd;
begin
  SavedDC := SaveDC(DC);
  NewBrush := CreateSolidBrush(Color);
  OldBrush := SelectObject(dc, NewBrush);
  try
    FillRect(DC, aRect, NewBrush);
  finally
    SelectObject(dc, OldBrush);
    DeleteObject(NewBrush);
    RestoreDC(DC, SavedDC);
  end;
end;

procedure GrayScale(Bmp: TBitmap);
var
  p : PByteArray;
  Gray, x, y, w, h : integer;
begin
  h := Bmp.Height - 1;
  w := Bmp.Width - 1;
  for y := 0 to h do begin
    p := Bmp.scanline[y];
    for x := 0 to w do begin
      Gray := (p[x * 3] + p[x * 3 + 1] + p[x * 3 + 2]) div 3;
      p[x * 3 + 0] := Gray;
      p[x * 3 + 1] := Gray;
      p[x * 3 + 2] := Gray;
    end;
  end;
end;

procedure GrayScaleTrans(Bmp: TBitmap; TransColor : TsColor);
var
  S1 : PRGBArray;
  Gray, x, y, w, h : integer;
begin
  h := Bmp.Height - 1;
  w := Bmp.Width - 1;
  for Y := 0 to h do begin
    S1 := Bmp.ScanLine[Y];
    for X := 0 to w do begin
      if (S1[X].B <> TransColor.B) or (S1[X].G <> TransColor.G) or (S1[X].R <> TransColor.R) then begin
        Gray := (S1[X].R + S1[X].G + S1[X].B) div 3;
        S1[X].R := Gray;
        S1[X].G := Gray;
        S1[X].B := Gray;
      end;
    end
  end;
end;

procedure BeveledBorder(DC: HDC; ColorTop, ColorBottom, Color: TColor; aRect: TRect; Width : integer; Bevel: TsBorderStyle; Soft : boolean);
var
//  i, w : integer;
  R: TRect;
  Color1, Color2 : TColor;
  TopBevel, BottomBevel: TsBorderStyle;
  procedure DrawRect; begin
    // Left line
    BeveledLine(dc, Color1, Color,
                Point(R.Left, R.Bottom - 1),
                Point(R.Left, R.Top),
                Width,
                TopBevel,
                sdLeft);
    // Top line
    BeveledLine(dc, Color1, Color,
                Point(R.Left, R.Top),
                Point(R.Right, R.Top),
                Width,
                TopBevel,
                sdTop);
    // Right line
    BeveledLine(dc, Color2, Color,
                Point(R.Right - 1, R.Top + 1),
                Point(R.Right - 1, R.Bottom - 1),
                Width,
                BottomBevel,
                sdRight);
    // Bottom Line
    BeveledLine(dc, Color2, Color,
                Point(R.Right - 1, R.Bottom - 1),
                Point(R.Left, R.Bottom - 1),
                Width,
                BottomBevel,
                sdBottom);
  end;
  procedure DrawRectSharp; begin
    // Left line
    SharpenLine(dc, Color1,
                Point(R.Left, R.Bottom - 1),
                Point(R.Left, R.Top),
                Width,
                TopBevel,
                sdLeft);
    // Top line
    SharpenLine(dc, Color1,
                Point(R.Left, R.Top),
                Point(R.Right, R.Top),
                Width,
                TopBevel,
                sdTop);
    // Right line
    SharpenLine(dc, Color2, 
                Point(R.Right - 1, R.Top + 1),
                Point(R.Right - 1, R.Bottom - 1),
                Width,
                BottomBevel,
                sdRight);
    // Bottom Line
    SharpenLine(dc, Color2,
                Point(R.Right - 1, R.Bottom - 1),
                Point(R.Left, R.Bottom - 1),
                Width,
                BottomBevel,
                sdBottom);
  end;
begin
  Color1 := ColorTop;
  Color2 := ColorBottom;
  R := aRect;
  Case Bevel of
    bsFlat1 : begin
      Color1 := ColorTop;
      Color2 := Color1;
      TopBevel := bsFlat1;
      BottomBevel := bsFlat1;
    end;
    bsFlat2 : begin
      Color1 := ColorBottom;
      Color2 := Color1;
      TopBevel := bsFlat2;
      BottomBevel := bsFlat2;
    end;
    sConst.bsRaised: begin
      TopBevel := sConst.bsRaised;
      BottomBevel := sConst.bsLowered;
    end;
    sConst.bsLowered: begin
      Color1 := ColorBottom;
      Color2 := ColorTop;
      BottomBevel := sConst.bsRaised;
      TopBevel := sConst.bsLowered;
    end;
  end;
  if not Soft then begin
    DrawRectSharp;
  end
  else begin
    DrawRect;
  end;
end;

procedure DrawLine(dc: HDC; Point1, Point2 : TPoint; LineColor: TColor);
var
  NewPen, OldPen : hPen;
  OldBrush : hBrush;
  SavedDC : hWnd;
begin
  SavedDC := SaveDC(DC);
  if SavedDC = 0 then Exit;
  NewPen := CreatePen(PS_SOLID, 1, LineColor);
  OldPen := SelectObject(dc, NewPen);
  OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));
  try
    MoveToEx(dc, Point1.x, Point1.y, nil);
    LineTo(dc, Point2.x, Point2.y);
  finally
    SelectObject(dc, OldPen);
    SelectObject(dc, OldBrush);
    DeleteObject(NewPen);
    RestoreDC(DC, SavedDC);
  end;
end;

procedure SharpenLine(DC: HDC; ColorLine: TColor; P1, P2: TPoint; Width : integer; Bevel: TsBorderStyle; Side: TsSide);
var
  i: integer;
  pP1, pP2: TPoint;
  NewColor : TColor;
  SavedDC : hWnd;
  procedure ChangeCoord; begin
    case Side of
      sdLeft:   begin inc(pP1.x); dec(pP1.y); inc(pP2.x); inc(pP2.y); end;
      sdTop:    begin inc(pP1.x); inc(pP1.y); dec(pP2.x); inc(pP2.y); end;
      sdRight:  begin dec(pP1.x); inc(pP1.y); dec(pP2.x); dec(pP2.y); end;
      sdBottom: begin dec(pP1.x); dec(pP1.y); inc(pP2.x); dec(pP2.y); end;
    end;
  end;
begin
  SavedDC := SaveDC(DC);
  if SavedDC = 0 then Exit;

  try
    NewColor := ColorLine;
    pP1 := P1;
    pP2 := P2;

    Case Bevel of
      bsFlat1, bsFlat2 : begin
        for i := 0 to Width - 1 do begin // Raised
          DrawLine(dc, pP1, pP2, NewColor);
          ChangeCoord;
        end;
      end;
      sConst.bsRaised: begin
        if Width > 1 then begin
          NewColor := ColorLine;
          for i := 0 to Width - 1 do begin
            DrawLine(dc, pP1, pP2, NewColor);
            ChangeCoord;
          end;
        end
        else begin
          NewColor := ColorLine;
          DrawLine(dc, pP1, pP2, NewColor);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香激情综合国产| 日韩精品中文字幕一区二区三区 | 亚洲国产成人tv| 国内一区二区视频| 欧美日韩国产高清一区| 国产日产欧美一区二区三区| 亚洲一区二区三区在线播放| 国产精品 日产精品 欧美精品| 在线免费视频一区二区| 久久久午夜精品理论片中文字幕| 午夜亚洲福利老司机| 成人高清免费观看| 日韩欧美aaaaaa| 日韩中文欧美在线| 欧美日本在线视频| 亚洲精品写真福利| 成人精品视频一区| 久久免费看少妇高潮| 秋霞午夜鲁丝一区二区老狼| 在线观看av一区二区| 日本一区二区三区免费乱视频 | 亚洲电影欧美电影有声小说| 成人美女视频在线看| 精品国产乱码久久| 蜜臀a∨国产成人精品| 欧美日韩久久一区| 天天av天天翘天天综合网| 91电影在线观看| 亚洲色图欧美偷拍| 99精品视频一区二区三区| 亚洲国产精品t66y| 成人深夜福利app| 中文字幕精品一区二区三区精品| 狠狠色狠狠色综合日日91app| 日韩女优av电影| 奇米888四色在线精品| 日韩精品一区二区三区老鸭窝| 蜜桃视频一区二区三区| 日韩一区二区视频在线观看| 日本在线观看不卡视频| 日韩精品一区二区在线| 蜜臀国产一区二区三区在线播放| 日韩午夜电影在线观看| 久久99国产精品久久99果冻传媒| 日韩欧美专区在线| 国产一区欧美二区| 国产精品视频一二三区| 97se亚洲国产综合自在线不卡| 成人免费在线观看入口| 在线影视一区二区三区| 亚洲成人综合视频| 日韩免费在线观看| 不卡的看片网站| 一区二区在线观看免费 | 日韩高清一级片| 久久午夜电影网| 成人小视频免费观看| 亚洲欧美偷拍三级| 制服丝袜中文字幕亚洲| 久久91精品国产91久久小草| 国产清纯在线一区二区www| 99国产精品99久久久久久| 亚洲国产日韩a在线播放| 欧美一区二区三区成人| 成人性生交大合| 日韩高清在线不卡| 中文字幕中文在线不卡住| 欧美日韩精品久久久| 国产高清视频一区| 亚洲一区二区在线免费观看视频| 欧美xxxxx牲另类人与| 成人av电影免费观看| 日韩精品成人一区二区在线| 国产日韩在线不卡| 欧美三级蜜桃2在线观看| 精品一区二区三区欧美| 亚洲女同一区二区| 精品国产精品一区二区夜夜嗨| 成人中文字幕在线| 丝袜诱惑亚洲看片| 国产精品白丝在线| 欧美成人精品福利| 91国产成人在线| 成人性生交大合| 久久精品国产99久久6| 亚洲激情图片qvod| 国产色91在线| 7777精品伊人久久久大香线蕉超级流畅 | 国产一区福利在线| 亚洲一级二级在线| 欧美国产97人人爽人人喊| 91精品国产91久久综合桃花| 成人av动漫在线| 国产久卡久卡久卡久卡视频精品| 日韩—二三区免费观看av| 亚洲欧美视频在线观看| 久久久久97国产精华液好用吗| 日韩欧美国产麻豆| 欧美视频精品在线观看| 97久久超碰国产精品电影| 成人av电影在线网| 不卡的av网站| 国产成人av影院| 国产精品99久久久久久有的能看| 美女网站在线免费欧美精品| 午夜久久久久久电影| 丝瓜av网站精品一区二区| 国产精品久久久久一区| 国产欧美一区二区在线| 国产片一区二区| 337p粉嫩大胆噜噜噜噜噜91av | 久久se这里有精品| 免费成人小视频| 另类小说视频一区二区| 日本最新不卡在线| 日本伊人午夜精品| 日韩高清一区二区| 另类小说综合欧美亚洲| 九九国产精品视频| 国产真实精品久久二三区| 麻豆国产一区二区| 老汉av免费一区二区三区| 五月天婷婷综合| 午夜精品免费在线| 男女性色大片免费观看一区二区| 日韩精品国产欧美| 久久精品国产99| 成人黄色免费短视频| 成人国产在线观看| av福利精品导航| 一本到不卡精品视频在线观看| 色噜噜狠狠成人中文综合| 欧美在线免费播放| 日韩欧美在线网站| 国产精品嫩草影院av蜜臀| 一区二区三区免费在线观看| 亚洲综合偷拍欧美一区色| 五月天视频一区| 国产成人午夜精品5599| 色激情天天射综合网| 欧美一级在线视频| 国产精品久久久久一区二区三区 | 欧美日韩一区二区三区视频| 欧美精品色综合| 久久久久久久av麻豆果冻| 国产精品国产三级国产普通话三级 | 亚洲成年人网站在线观看| 久久精品免费看| 不卡av电影在线播放| 欧美少妇xxx| 久久精品人人做人人综合| 亚洲精品午夜久久久| 日韩av电影天堂| 菠萝蜜视频在线观看一区| 在线观看91精品国产麻豆| 中文在线一区二区| 午夜日韩在线观看| 成人va在线观看| 91精品婷婷国产综合久久| 国产精品成人午夜| 久久99精品国产麻豆婷婷洗澡| 色狠狠一区二区| 精品电影一区二区三区| 全国精品久久少妇| 99免费精品在线| 日韩视频免费观看高清在线视频| 亚洲欧美日韩国产成人精品影院| 日韩成人av影视| 色呦呦国产精品| 久久精品人人做人人综合| 免费人成黄页网站在线一区二区| aaa国产一区| 国产日韩欧美电影| 免费成人在线观看| 欧美视频一区二区| 亚洲视频你懂的| 成人在线综合网| 久久久久久亚洲综合| 久久99精品视频| 欧美一区日韩一区| 亚洲一区av在线| 91成人国产精品| 中文字幕制服丝袜一区二区三区| 久久精品国产**网站演员| 欧美日韩国产电影| 亚洲一区二区在线观看视频| 色综合久久88色综合天天| 国产精品欧美一级免费| 精品一区二区三区久久久| 日韩一级高清毛片| 美女免费视频一区二区| 91麻豆精品国产综合久久久久久| 一区二区国产盗摄色噜噜| 一本到高清视频免费精品| 国产精品久久久久7777按摩| 豆国产96在线|亚洲| 国产日韩精品一区| 懂色中文一区二区在线播放| 中文字幕av免费专区久久| 成人午夜在线免费|