C#如何消除验证码图片的锯齿效果_C#教程

引言 

      基于生成图片实现了一个手机号转图片的需求。 内容也很简单,直接用手机号生成一个png图片。就是为了背景透明以便其他地方调用。 有无锯齿主要依靠一句代码:g.TextRenderingHint= TextRenderingHint.AntiAlias; 

生成图片  

1、有锯齿 

2、无锯齿

生成方法

string color = "#ff6633"; 

    System.Drawing.Bitmap image = new System.Drawing.Bitmap(170, 35);
    Graphics g = Graphics.FromImage(image);
    try
    {
      g.TextRenderingHint= TextRenderingHint.AntiAlias; //消除锯齿

      //生成随机生成器
      Random random = new Random();
     //清空图片背景色
      //g.Clear(Color.Transparent);
      //画图片的背景噪音线

      /*for (int i = 0; i < 2; i++)

      {
        int x1 = random.Next(image.Width);
        int x2 = random.Next(image.Width);
        int y1 = random.Next(image.Height);
        int y2 = random.Next(image.Height);
        g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);

      }

      */

      System.Drawing.ColorConverter colConvert = new System.Drawing.ColorConverter();
      Color fontColor =(System.Drawing.Color)colConvert.ConvertFromString(color);
      Font font = new System.Drawing.Font("Arial", 18, System.Drawing.FontStyle.Bold);
      LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), fontColor, fontColor,LinearGradientMode.Horizontal);
      g.DrawString(phone, font, brush, 2, 2);
      //画图片的前景噪音点
       //for (int i = 0; i < 50; i++)
      //{
      //  int x = random.Next(image.Width);
      //  int y = random.Next(image.Height);
      //  image.SetPixel(x, y, Color.FromArgb(random.Next()));

      //}

      //画图片的边框线

      //g.DrawRectangle(new Pen(Color.White), 0, 0, image.Width - 1, image.Height - 1);

      System.IO.MemoryStream ms = new System.IO.MemoryStream();
      Color backColor = image.GetPixel(1, 1);
      image.MakeTransparent(backColor);
      image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
      context.Response.ClearContent();
      context.Response.ContentType = "image/x-png";
      context.Response.BinaryWrite(ms.ToArray());
    }
    finally
    {
      g.Dispose();
      image.Dispose();

    }

参考资料 

http://www.blue1000.com/bkhtml/c17/2013-03/71115.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索C#消除锯齿效果
, C#如何图片锯齿
C#验证码消除锯齿
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-10-27 14:16:10

C#如何消除验证码图片的锯齿效果_C#教程的相关文章

我的aspx网页在vs2005调试运行不显示验证码图片和javascript效果呢?

问题描述 我的aspx网页在vs2005调试运行不显示验证码图片和javascript效果呢?是不是环境染毒了?是iis出现问题还是vs2005出现问题还是什么原因呢?前几天还好好的! 解决方案 解决方案二:是不是新加js或者css影响了

PhotoShop制作滚动图片GIF动画效果图文教程

教程利用PhotoShop制作滚动图片GIF动画效果,考虑制作滚动图像多样性效果,我分别介绍三种不同的方法来制作有差异的动画效果,分别是:平行单向滚动动态效果,往复式滚动动画效果和开关门式滚动动画. 大家可以根据自已已经掌握的动画制作知识进行选择性练习,同时,根据教程思路创作出另一种不同风格的动画效果. 先上几个效果: 分类: PS入门教程

php生成验证码图片从入门和精通教程

在php中要生成验证码图片是相当的简单的,因为在php中为我们提供了图形gd.dll库,要启用gd图形库我们只要在在php.ini中把php-gd前面的;去就可以了. 方法一 $authnum=''; $ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; $list=explode(",",$ychar);//分割函数 for($i=0;$i<4;$i

Photoshop古装美女图片转为工笔画效果制作教程

给各位Photoshop软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程. 教程分享: 一.转为线稿: 我们要把一张图转为线稿非常简单. 我们复制原图,使用ctrl+alt+shift+b将画面转为黑白,然后再复制把这个黑白图层复制一层,混合模式改为颜色减淡.         然后使用ctrl+i反相,这时候画面会变为近乎纯白色的.     然后我们使用滤镜-其他-最小值,参数为1个像素即可.画面效果如下.     二.混合模式: 这一步是最为关键也是最为核心的步骤. 首先,我们

利用C#代码实现图片旋转360度_C#教程

using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; namespace 图片旋转程序 { public class ImageHelper { /// <summary> /// 以逆时针为方向对图像进行旋转 /// </summary> /// <param name="

C#实现打造气泡屏幕保护效果_C#教程

本文主要是介绍C#实现打造气泡屏幕保护效果,首先说一下制作要点:1 窗口要全屏置顶 2 模拟气泡的滚动和粘滞效果 3 支持快捷键ESC退出 大致就是这3个要点了,其他还有一些细节我们在程序中根据需要再看,OK,开工! 首先是全屏置顶,因为是屏幕保护嘛,这个简单,在窗体的属性设置里把FormBorderStyle设置为none表示无边框,把ShowInTaskbar设置为false表示不在任务栏出现,最后一个把WindowState设置为Maximized表示最大化即可,当然可以设置TopMost

Winform实现鼠标可穿透的窗体镂空效果_C#教程

今天找到一个名叫LICEcap的录屏软件,录制界面是这样的: 这个炫酷的空心窗口就是镜头,调整好大小,然后对准需要录制的地方按下Record就可以生成gif了. 卧槽太NB了我也要做一个! 根据StackOverflow站的提示(在这里),我们需要使用一个在Windows2000及之后平台可用的,用以实现不规则窗体的分层窗口API (SetLayerWindowAttributes).根据百度我们先需要使用一个名为SetWindowLong的Win32 API来把窗体设定为分层窗体. 为了在.N

C#.NET 图片水印添加代码_C#教程

本文实例为大家分享了C#.NET添加 图片水印的方法,供大家参考,具体内容如下 using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; namespace Pub.Class { /// <summary> /// 添加水印类 只支持添加图片水印 /// </summary> public class Wate

MessageBox的Buttons和三级联动效果_C#教程

一.MessageBox的Buttons MessageBox.Show可以出现有按钮的对话框 例如: DialogResult dr = MessageBox.Show("是否要继续吗?", "警告!!!", MessageBoxButtons.OKCancel);//它弹出的对话框如下图所示 if (dr == DialogResult.OK)//只有按下确定按钮才执行下面 { label1.Text = "天气不错"; } 除此之外Mess