zoukankan      html  css  js  c++  java
  • 图像的柔化处理

    基本原理:

      以一个像素点为中心,取一个3*3大小的区域,以该区域中9个像素点的颜色平均值为该中心像素点着色

    实例:


    var
      Form17: TForm17;
      Map1:TBitmap;

    implementation

    {$R *.dfm}procedure TForm17.FormCreate(Sender: TObject);
    begin
     // Lb_R.Caption:='';

     OpenDialog1.DefaultExt:=GraphicExtension(TBitmap);
     OpenDialog1.Filter:=GraphicFilter(TBitmap);
     if OpenDialog1.Execute then
     begin
      Map1:=TBitmap.Create;
      Map1.LoadFromFile(OpenDialog1.FileName);
      Image1.Picture.Bitmap:=Map1;

     end;

    end;

    procedure TForm17.Button1Click(Sender: TObject);
    var
      xmax,ymax,i,j,m,n:integer;
      r,g,b:integer;
      temp:TColor;
    begin
      xmax:=Image1.Picture.Bitmap.Width-1;
      ymax:=Image1.Picture.Bitmap.Height-1;
      Label1.Caption:='柔化处理中,请稍后...';
      Form17.Refresh;

      ProgressBar1.Min:=0;
      ProgressBar1.Max:=xmax;
      ProgressBar1.Position:=0;
      ProgressBar1.Step:=1;
      Form17.Refresh;

      for i:=1 to xmax-1 do
      begin
        ProgressBar1.StepIt;
        for j:=1 to ymax-1 do
        begin
          r:=0;
          g:=0;
          b:=0;
            for m:=i-1 to i+1 do
              for n:=j-1 to j+1 do
            begin
              r:=r+GetRValue(Image1.Canvas.Pixels[m,n]);
              g:=g+GetGValue(Image1.Canvas.Pixels[m,n]);
              b:=b+GetBValue(Image1.Canvas.Pixels[m,n]);

            end;
          r:=r div 9;
          g:=g div 9;
          b:=b div 9;
          Image1.Canvas.Pixels[i,j]:=RGB(r,g,b);

        end;
      end;
      Image1.Refresh;
      Label1.Caption:='柔化处理完成...';

    end;

  • 相关阅读:
    CSS3 定位| Position研究
    ASP.NET中Partial Class部分类
    如何安全实现“记住我”的功能
    JavaScript后台代码操作HTML TABLE的方法
    强悍的CSS工具组合:Blueprint, Sass, Compass
    CSS的力量:用一个DIV画图
    ASP.NET记录错误日志的方式
    ASP.NET私有构造函数作用
    c#.net实现浏览器端大文件分块上传
    asp.net实现浏览器端大文件分块上传
  • 原文地址:https://www.cnblogs.com/huking/p/1704971.html
Copyright © 2011-2022 走看看