GDI+ 如何将图片绘制成圆形的图片
大概意思就是不生成新的图片,而是将图片转换为圆形图片。
实现代码如下:
private Image CutEllipse(Image img, Rectangle rec, Size size)
{
Bitmap bitmap = new Bitmap(size.Width, size.Height);
using (Graphics g = Graphics.FromImage(bitmap))
{
using (TextureBrush br = new TextureBrush(img,System.Drawing.Drawing2D.WrapMode.Clamp, rec))
{
br.ScaleTransform(bitmap.Width / (float)rec.Width, bitmap.Height / (float)rec.Height);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.FillEllipse(br, new Rectangle(Point.Empty, size));
}
}
return bitmap;
}
然后调用方法即可。
Image image = this.pictureBox1.Image;
Image newImage = CutEllipse(image, new Rectangle(, , , ), new Size(, ));
this.pictureBox2.Image = newImage;
那么用WPF如何实现?实现就更简单了,不需要写后台代码,直接利用XAML即可。
<Grid>
<Ellipse Height="150" Width="150">
<Ellipse.Fill>
<ImageBrush ImageSource="Image/1_guwei4037.jpg" ></ImageBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
—————————————————————————————————————————————————
群里的@陈应钦对如上的方法提出一个问题,就是如上的方法图形的下边缘和右侧边缘是一条直线,并不是平滑的曲线。细心观察确实如此。
原因是我画到了picturebox控件中,本身picturebox控件border就占长度,正好又画满控件,所以右边和下边都是直线了(空间不够了)。
所以解决方案有两个:可以直接绘制到不占空间的区域(比如窗体中指定的Rectangle),或者将绘制图形的长和宽缩小一点。
GDI+ 如何将图片绘制成圆形的图片的更多相关文章
- GDI+ 怎样将图片绘制成圆形的图片
大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码例如以下: private Image CutEllipse(Image img, Rectangle rec, Size size) ...
- 微信小程序canvas把正方形图片绘制成圆形
wxml代码: <view class="result-page"> <canvas canvas-id='firstCanvas' style='width:1 ...
- Android中将一个图片切割成多个图片
有种场景,我们想将一个图片切割成多个图片.比如我们在开发一个拼图的游戏,就首先要对图片进行切割. 以下是封装好的两个类,可以实现图片的切割.仅供参考和学习. 一个是ImagePiece类,此类保存了一 ...
- Android中将一个图片切割成多个图片[转]
有种场景,我们想将一个图片切割成多个图片.比如我们在开发一个拼图的游戏,就首先要对图片进行切割. 以下是封装好的两个类,可以实现图片的切割.仅供参考和学习. 一个是ImagePiece类,此类保存了一 ...
- 不涉及框架纯java实现将图片裁成圆形
package com.wtsrui.utils;import java.awt.Color; import sun.misc.BASE64Encoder;import java.awt.Graph ...
- 如何将.jpg图片 转换成.eps 格式图片
在使用latex写作论文的时候,需要插入一些图片,但是往往有些图片不是eps格式的.虽然网上有如何插入jpg格式的图片方法,但是经过我实验后发现都不太管用.最后找到一个比较靠谱的方法,使用latx本身 ...
- asp.net GDI+把图片绘制成自定义的椭圆形状
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- C#实现将图片设置成圆形形式显示
首先在Form中添加一个控件,然后将控件的背景BackColor设置成透明 . 然后分别设置控件的Image: Image image = Image.FromFile(UserLoginInfor. ...
- FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片
void SrcToDest(char* pSrc, char* pDest,unsigned int nSrcWidth, unsigned int nSrcHeight, AVPixelForma ...
随机推荐
- Samba Linux和Windows互访
之前一直用的sshfs manager,但是会出现造成电脑黑屏的情况.网上也没找到其它类似的软件. 后面打算用Samba 直接搜到一篇很强大的文章. 1. 下载及安装Samba 推荐用yum来安装, ...
- 产生不重复的随机数TGUID
uses ActiveX; procedure TForm1.BtnNewClick(Sender: TObject);var ID: TGUID; S: string;begin if CoC ...
- ios开发——实用技术OC篇&地图与定位
地图与定位 11.1 iOS定位服务 11.2 iOS地图 11.3 Web地图 1 iOS定位服务 iOS中有三个定位服务组件: Wifi定位,通过查询一个Wifi路由器的地理位置的信息.比较省电, ...
- android学习日记19--四大组件之BroadcastReciver(广播接收者)
二.BroadcastReciver(广播接收者) 1.简述 BroadcastReciver位于android.content包下,主要用于对广播消息(Intent)的过滤并响应的控件.可以理解为全 ...
- Mysql一些重要配置参数的学习与整理系列
http://my.oschina.net/realfighter/blog?catalog=585558&temp=1467909771588
- jquery实现无缝滚动
//点击上一页 $('.pointLeft').click(function() { if (prevAllow) { prevAllow = false; scrollUlLeft = scroll ...
- C#_dropdownlist_1
关于ASP.net MVC 中DropDownList绑定与提交数据 在做 ASP.net MVC项目中,数据绑定也是很关键的,现在以个人经验与大家交流下 ASP.net MVC 中DropDow ...
- CentOS下yum安装mysql,jdk以及tomcat
首先说明,服务器是阿里云的,centos6.3_64位安全加固版.首先需要登陆进来,使用的是putty,因为最初的时候,Xshell登陆会被拒绝. 0. 创建个人文件夹 # 使用 yum 安装tomc ...
- Controllers
Controllers Controllers are the bread and butter of the framework they control when a model is used ...
- 手把手教你使用UICollectionView写公司的项目
在很多app中都有这样通用的页面,一直没有机会使用UICollectionView,只是简单的看过他的使用方法.今天公司美工出图,使用了他,并且遇到了好多的坑.记录一下过程,不确定使用的方法是不是最优 ...