0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
王鑫萌:我妈说关注我微博了,我怎么也没发现,原来她用的是腾讯微博。。。。
0 点赞 评论 收藏
分享
酒酒不能忘怀:培训出来的,简历照实写,根本就没面试的机会。其实,在班里,我觉得还行,我都打算给钱就干了,可以就算不要钱都没人给机会。我特别不想像他们包装简历。
0 点赞 评论 收藏
分享
砚南:向死而生
孔夫子在《论语》里面有一句话,叫做“未知生焉知死”,当然这是否能够代表孔子的生死观我们不敢妄下断言,但至少它代表了一种典型的生死态度。生的事情你都还没弄明白呢,死你管它干什么?在我们看来生的问题永远搞不明白,那死的问题你根本就不用想了。与此相对的是***教的一种观念,或者说宗教的一种观念,它其实是从人对死的思考来展开的——未知死焉知生?你对死后的东西不弄明白,那你这个生的意义在哪里?
0 点赞 评论 收藏
分享
toraoh:先上图:
原图
执行后:
下面提供每个Windows(>=windows 7)用户都能不用再装别的东西就跑的代码!
当然是C#了!(还有VB.Net)
微软在.Net Framework里自带了C#和VB.Net的编译器(csc.exe和vbc.exe)
一般藏在:
系统盘:\Windows\Microsoft.NET\Framework\v4.0.30319(最后是具体的版本,随便哪个都行)
下面。
找到csc.exe了吗?
然后把以下代码保存为.cs文件(比如Program.cs)
using System;
using System.Drawing;
using System.Drawing.Imaging;
namespace App {
class Program {
static void Main(string[] args) {
try {
Bitmap img = new Bitmap(args[0]);
int r = int.Parse(args[2]);
Graphics g = Graphics.FromImage(img);
g.FillEllipse(new SolidBrush(Color.Red),//填充颜色
img.Width - 2 * r, 0, 2 * r, 2 * r); //左上角的x、y,以及长、宽
Font drawFont = new Font(
"STXINWEI", //字体文件名
(int)(r / 12.0 * 5.0), //字号
FontStyle.Bold,
GraphicsUnit.Millimeter);
g.DrawString(
"1", //要显示的文本
drawFont,
new SolidBrush(Color.White),
(int)(img.Width - 2 * r + r / 12.0 * 5.0), //左上角的x坐标
r / 3); //左上角的y坐标
img.Save(args[1], ImageFormat.Png);
} catch {
Console.WriteLine(@"Usage: ");
Console.WriteLine(@"ThisTool.exe inputfile outputfile radius");
Console.WriteLine(@"Example: ");
Console.WriteLine(@"ThisTool.exe C:\input.jpg C:\output.png 30");
}
}
}
}
然后用命令:
csc /out:Program.exe /r:System.Drawing.dll /o+ Program.cs
编译,得到Program.exe
最后执行
Program.exe test.jpg test2.png 30
就可以得到你要的结果了!
简单说明:System.Drawing.Graphics 封装了GDI+绘图接口。
调用这个接口,即可开始愉快的乱画之旅~
==================================
再给我一点时间,可以给你们展示一个更激动一点的玩法——把这个小东西变成一个Web API。
安装一个Visual Studio 2015,新建项目,在C#下选择Web - ASP.Net Web应用程序,选好路径,点确定。
上面的模板,选择空,下面请勾选“Web API”。
在Controller文件夹上,右键,添加,控制器。
选择空的Web API 2 控制器,确定。
然后给控制器起个名字,比如ImagePop,点确定。
之后在里面加一个接口了。
这个接口需要:
· 接受POST方法传入的图像
· 加上圆形提示
· 传回图像
请见以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Net.Http.Headers;
namespace WebApplication1.Controllers
{
public class ImagePopController : ApiController
{
public HttpResponseMessage PostImg(int radius=30) {
//参考:https://my.oschina.net/u/232799/blog/364821
var task = Request.Content.ReadAsMultipartAsync();
task.Wait();
var file = task.Result;
var stream = new MemoryStream();
//写入流
file.Contents.ElementAt(0).CopyToAsync(stream).Wait();
Bitmap img = new Bitmap(stream);
Graphics g = Graphics.FromImage(img);
g.FillEllipse(new SolidBrush(Color.Red),//填充颜色
img.Width - 2 * radius, 0, 2 * radius, 2 * radius); //左上角的x、y,以及长、宽
Font drawFont = new Font(
"STXINWEI", //字体文件名
(int)(radius / 12.0 * 5.0), //字号
FontStyle.Bold,
GraphicsUnit.Millimeter);
g.DrawString(
"1", //要显示的文本
drawFont,
new SolidBrush(Color.White),
(int)(img.Width - 2 * radius + radius / 12.0 * 5.0), //左上角的x坐标
radius / 3); //左上角的y坐标
//参考:http://www.itdos.com/mvc/20150302/0741255.html
//从图片中读取流
var imgStream = new MemoryStream();
img.Save(imgStream, ImageFormat.Png);
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new ByteArrayContent(imgStream.GetBuffer());
response.Content.Headers.Add("Access-Control-Allow-Origin", "*");
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
return response;
}
}
}
然后?
然后我们什么修改都不需要做(不需要配置路由,有默认的,就先用默认路由了)
点击运行。
然后会打开一个浏览器,请记一下浏览器里的地址(localhost:xxxxx),之后我们要验证一下。
之后,打开纯文本编辑器一个,创建一个.html文件,来做一个测试网页:
<!-- 基本框架参考 https://software.intel.com/zh-cn/blogs/2014/08/06/html5-filereader-iframe -->
<!DOCTYPE HTML PUBLIC>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
<style type="text/css">
body{margin: 0px; background:#f2f2f0; font-family: sans-serif;}
p{margin:0px;}
.title{color:#FFFF00; background:#000000; text-align:center; font-size:24px; line-height:40px; font-weight:bold;}
.file{position:absolute; width:100%; font-size:90px;}
.filebtn{display:block; position:relative; height:110px; color:#FFFFFF; background:#06980e; font-size:48px; line-height:110px; text-align:center; cursor:pointer; border: 3px solid #cccccc;}
.filebtn:hover{background:#04bc0d;}
.showimg{margin:10px auto 10px auto; text-align:center;}
.radius{ margin: 10px; font: inherit; font-size:20px; line-height:30px; color: #000000;}
</style>
<script type="text/javascript">
function $(e){
return document.getElementById(e);
}
window.onload = function(){
$("radius").value="30";
// 选择图片
$('img').onchange = function(){
var img = event.target.files[0];
// 判断是否图片
if(!img){
return ;
}
// 判断图片格式
if(!(img.type.indexOf('image')==0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name)) ){
alert('图片只能是jpg,gif,png');
return ;
}
var data = new FormData();
data.append('img', img);
data.append('radius',$('radius').value);
//参考:https://segmentfault.com/q/1010000000443286
//http://jsfiddle.net/humphry/wYSuM/8/
var xhr = new XMLHttpRequest() ;
var APIAddr = "http://localhost:24441/api/ImagePop?radius="+$("radius").value ;
xhr.onload = function() {
var objectURL = URL.createObjectURL(this.response);
var img = document.createElement("img");
img.src = objectURL;
img.onload = function(e) {
window.URL.revokeObjectURL(this.src);
};
var myNode = $("showimg");
while (myNode.firstChild) {
myNode.removeChild(myNode.firstChild);
}
$("showimg").appendChild(img);
} ;
xhr.open("POST", APIAddr);
xhr.responseType = "blob";
xhr.send(data);
}
}
</script>
</head>
<body>
<p class="title">测试页面</p>
<p class="title">
右上角圆的半径<input type="text" class="radius" id="radius"/>
</p>
<p><input type="file" class="file" id="img"><label class="filebtn" for="img" title="JPG,GIF,PNG">请选择图片</label></p>
<p class="showimg" id="showimg"></p>
</body>
</html>
然后用Chrome打开这个测试网页,上传一张图片,你会看到:
ok,完工。
美化什么的,我不管了了~
查看图片

0 点赞 评论 收藏
分享
牛妞妞不爱喝牛奶: 昨天刚来的,希望通过牛客网自己能有进步,明年拿到心仪的offer! 明年感恩节,希望可以在这里感谢自己努力奋斗的一年,加油!!!!!!
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
我不懂了:你眼睛不要了啊,离作业本远一点啊
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
无务:腾讯新闻有时候是网易新闻,连图标都一样。总弄错,好尴尬
0 点赞 评论 收藏
分享
王鑫萌:您本月的套餐共6000M,剩余0M,通话时间150分钟,剩余150分钟
0 点赞 评论 收藏
分享
ppdxf:学长 我也去找了这个俄罗斯方块儿的视频但是不全 如果可以的话 求分享我的邮箱是1342972108@qq.com 谢谢学长啦
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: