原图旋转/缩放 然后画布画图 ImageProcessor
//旋转
byte[] photoBytes = File.ReadAllBytes(HttpContext.Current.Server.MapPath(diyInfo.ImageUrl));
ImageFactory imageFactory = new ImageFactory();
imageFactory.Load(photoBytes);
imageFactory.Rotate(diyInfo.RotationAngle);
var ss = imageFactory.Image;
//缩放
Bitmap bm1 = new Bitmap(ss, Convert.ToInt32(ss.Width * diyInfo.TemplateZoom * diyInfo.PictureZoom), Convert.ToInt32(ss.Height * diyInfo.TemplateZoom * diyInfo.PictureZoom));
//画布做图
Bitmap huabu = new Bitmap(Convert.ToInt32(diyInfo.EditWidth), Convert.ToInt32(diyInfo.EditHeight));
Graphics huabug = Graphics.FromImage(huabu);
var neww = bm1.Width;
var newh = bm1.Height;
var x = Convert.ToInt32(diyInfo.CenterMarginLeft * diyInfo.TemplateZoom - neww / );
var y = Convert.ToInt32(diyInfo.CenterMarginTop * diyInfo.TemplateZoom - newh / );
Point ulCorner = new Point(x, y);
huabug.DrawImage(bm1, ulCorner);
huabu.Save(@"newbm.jpg");
//创建一块指定大小的画布
var bitmap = new Bitmap(, );
var huabug = Graphics.FromImage(bitmap);
//在画布指定位置添加一张图片
var ulCorner = new Point(, );
var newImage = Image.FromFile(@"C:\\Users\\wei.chen\\Desktop\\ConsoleApplication1\\ConsoleApplication1\\images\\chrome.png");
huabug.DrawImage(newImage, ulCorner);
//在画布指定位置写文字
//定义字体
var frm = new PrivateFontCollection();
frm.AddFontFile(@"C:\\Users\\wei.chen\\Desktop\\ConsoleApplication1\\ConsoleApplication1\\fonts\\华康娃娃体.TTF");
Font font = new Font(frm.Families[], );
//定义颜色
SolidBrush sbrush = new SolidBrush(System.Drawing.ColorTranslator.FromHtml("#ff0000"));
// 绘制围绕点旋转的文本
PointF point = new PointF(, );
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
Matrix mtxRotate = huabug.Transform;
mtxRotate.RotateAt(90f, point); // 旋转角度和平移
huabug.Transform = mtxRotate;
huabug.DrawString("从前有座山", font, sbrush, point, format);
bitmap.Save(@"newbm.jpg");
原图旋转/缩放 然后画布画图 ImageProcessor的更多相关文章
- osg矩阵变换节点-----平移旋转缩放
osg矩阵变换节点-----平移旋转缩放 转自:http://www.cnblogs.com/ylwn817/articles/1973396.html 平移旋转缩放这个三个是osg矩阵操作中,最常见 ...
- osg中使用MatrixTransform来实现模型的平移/旋转/缩放
osg中使用MatrixTransform来实现模型的平移/旋转/缩放 转自:http://www.cnblogs.com/kekec/archive/2011/08/15/2139893.html# ...
- Blender模型导入进Unity,旋转缩放的调整
Blender跟Unity的XYZ轴不同的原因,导致Blender模型导入Unity之后会发生模型朝向不对. 请先看看下边这个情况: 首先,Blender物体模式下,对模型进行 旋转 缩放,将会在右边 ...
- Android图片旋转,缩放,位移,倾斜,对称完整示例(一)——imageView.setImageMatrix(matrix)和Matrix
MainActivity如下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; ...
- CSS3旋转缩放移动倾斜等效果——transform
1.transform浏览器支持情况 也就是说目前不考虑老浏览器的话是不用加前缀的,感谢菜鸟教程:https://www.runoob.com/cssref/css3-pr-transform.htm ...
- webgl学习笔记三-平移旋转缩放
写在前面 建议先阅读下前面我的两篇文章. webgl学习笔记一-绘图单点 webgl学习笔记二-绘图多点 平移 1.关键点说明 顶点着色器需要加上 uniform vec4 u_Translation ...
- canvas学习笔记(下篇) -- canvas入门教程--保存状态/变形/旋转/缩放/矩阵变换/综合案例(星空/时钟/小球)
[下篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...
- Android图片旋转,缩放,位移,倾斜,对称完整演示样例(一)——imageView.setImageMatrix(matrix)和Matrix
MainActivity例如以下: import android.os.Bundle; import android.view.MotionEvent; import android.view.Vie ...
- OpenGL绘制简单场景,实现旋转缩放平移和灯光效果
本项目实现了用OpenGL绘制一个简单场景,包括正方体.球体和网格,实现了物体的旋转.缩放.平移和灯光效果.附有项目完整代码.有具体凝视.适合刚開始学习的人熟悉opengl使用. 开发情况 开发环境V ...
随机推荐
- Lambda表达式、依赖倒置
ASP.NET MVC学前篇之Lambda表达式.依赖倒置 ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx= ...
- GridView动态增加行
GridView动态增加行GridView动态增加行 很多时候,我们需要可编辑的表格,来比较方便的进行数据的录入,比如学习成绩的录入.当然这就要求能够动态的增加行,来一次性录入多个学生的信息.现在用A ...
- winform实现动态按钮
private void button6_MouseMove(object sender, MouseEventArgs e) { button6.ImageAlign = ContentAlignm ...
- Stub和Mock的理解
我对Stub和Mock的理解 介绍 使用测试驱动开发大半年了,我还是对Stub和Mock的认识比较模糊,没有进行系统整理. 今天查阅了相关资料,觉得写得很不错,所以我试图在博文中对资料进行整理一下,再 ...
- Linux内核中链表实现
关于双链表实现,一般教科书上定义一个双向链表节点的方法如下: struct list_node{ stuct list_node *pre; stuct list_node *next; ElemTy ...
- 新的IRepository接口+搜索和排序解耦(+基于Castle实现)
新的IRepository接口+搜索和排序解耦(+基于Castle实现) 经过了上篇IRepository和IRepository<T>的讨论[文章地址为:http://www.cnblo ...
- 【ADO.Excel】ADO获取excel的Sheet集合
using (OleDbConnection connection = new OleDbConnection(GetConnectionString())) { connection.Open(); ...
- 随机生成n个不相等的随机数
在计算机视觉中,(例如8点算法)经常用到RANSAC算法在N个数据中找到最合适的一组n(n<N)个数据对,使某项指标达到最大.解决这个问题需要随机的在N个数据对中采样.本文实现一种线性的,复杂度 ...
- 从UI开始
虚拟化平台cloudstack(8)——从UI开始 UI ucloudstack采用的是前后端分离的架构,就是说前端可以选择使用web.swing甚至其它的界面,都可以. 我们来看cloudsta ...
- javascript语言精粹mindmap
javascript语言精粹mindmap 最近刚刚读完<javascript语言精粹>,感觉其中的内容确实给用js作开发语言的童鞋们提了个醒——js里面坑很多啊 不过,我也并不完全认同书 ...