C#学习-图片的处理
1.在图片上加防伪标记
private void btnAddString_Click(object sender, EventArgs e)
{
//以流的方式,获取一张图片
using (FileStream reader=new FileStream(@"H:/img/1.jpg",FileMode.OpenOrCreate,FileAccess.Read))
{
//通过流创建一个Image对象
using (Image img=Image.FromStream(reader))
{
//通过Image,创建一个画布
Graphics g = Graphics.FromImage(img);
//在画布上,画一个字符串
g.DrawString("我是有版权的",new Font("华文彩云",20,FontStyle.Bold),Brushes.Black,0,0 );
//保存,本机的物理路径 或 根目录下为“\”
img.Save(@"H:/img/new/1.jpg");
}
}
MessageBox.Show("ok");
}
2.对图片进行等比例缩放
private void btnImgCut_Click(object sender, EventArgs e)
{
//获取一张图片,得到一个流
using (FileStream reader = new FileStream(@"H:/img/1.jpg", FileMode.OpenOrCreate, FileAccess.Read))
{
//通过流,创建一个Image对象
using (Image img = Image.FromStream(reader))
{
//缩放后的宽度
int newWidth = (int)img.Width/2;
//缩放后的高度
int newHeight = (int)img.Height/2;
//创建一张新的空图片
Image newImage = new Bitmap(newWidth, newHeight);
//创建一张画布
Graphics g = Graphics.FromImage(newImage);
//在 新 画布上画上 图片
g.DrawImage(img,new Rectangle(0,0,newImage.Width,newImage.Height),new Rectangle(0,0,img.Width,img.Height),GraphicsUnit.Pixel );
//保存
newImage.Save(@"H:/img/new/1n.jpg");
}
}
MessageBox.Show("ok");
}
C#学习-图片的处理的更多相关文章
- iOS学习——图片压缩到指定大小以内
一.图片压缩简述 在我们开发过程中,有可能会遇到拍照.或者从相册中选择图片,要么单选或者多选,然后上传图片到服务器,一般情况下一张图片可能3-4M,如果类似微信朋友圈上传9张图片大约是 35M左右,如 ...
- Java多线程学习——图片下载
实现多线程方式1:继承类Thread——重写方法run——调用方法start 从网络下载图片首先要增加包commons-io.jar import org.apache.commons.io.File ...
- android 基础学习图片六progross
加载进度条应用
- Android图片开发内幕--基础篇
前言:本来我是做电视应用的,但是因为公司要出手机,人员紧张,所以就抽调我去支援一下,谁叫俺是雷锋呢!我做的一个功能就是处理手机中的应用ICON,处理无非就是美化一下,重新与底板进行合成和裁剪,用到了很 ...
- lecture14-RBM的堆叠、修改以及DBN的决策学习和微调
这是Hinton的第14课,主要介绍了RBM和DBN的东西,这一课的课外读物有三篇论文<Self-taught learning- transfer learning from unlabele ...
- Xamarin.Forms入门学习路线
Xamarin 介绍 Xamarin是一套跨平台解决方案,目的是使用C#语言创造原生的iOS,Android,Mac和Windows应用. Xamarin的三个优势: Xamarin App拥有原生A ...
- Android 图片开发内幕系列第一篇
前言:本来我是做电视应用的,但是因为公司要出手机,人员紧张,所以就抽调我去支援一下,谁叫俺是雷锋呢!我做的一个功能就是处理手机中的应用ICON,处理无非就是美化一下,重新与底板进行合成和裁剪,用到了很 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- ThinkPHP图片上传
ThinkPHP是国内比较流行的轻量级的PHP框架,它在国内流行的一个最主要的因素在于它的说明文档非常健全完善,以及它源码内的注释都是中文的,方便于英语能力较差的程序员学习. 图片上传在网站里是很常用 ...
随机推荐
- 线程 synchronized锁机制
脏读 一个常见的概念.在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过 ...
- 【Codeforces 979B】Treasure Hunt
[链接] 我是链接,点我呀:) [题意] 每次你可以将一个字符变成一个不同于本身的字符. 每个人需要改变n次(且不能不改变) 设每个人的字符串中出现次数最多的字符出现的次数为cnt[0~2] 问你谁的 ...
- hdu 1874 dijkstra 队列实现 比数组高效特别在稀疏图
参考 http://blog.csdn.net/zhuyingqingfen/article/details/6370561 刘汝佳白皮书 #include<stdio.h> #incl ...
- 【6572】关于mtk平台display模块的学习探讨
现在在学习mtk的display subsystem,有遇到流程上不太清楚地地方想要询问: 1.cmd模式和video模式framebuffer如何更新, 以及两种模式的差异? cmd和video m ...
- O - Treats for the Cows 区间DP
FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast am ...
- 单例模式解决RabbitMQ超出最大连接问题
今天在项目稳定性测试过程中遇到一个情景:通过工具jMeter一直请求消息转发服务器,消息转发服务器再向rabbitMQ发送数据,在这期间出现了问题.MQ意外宕机. 1. 查看rabbitMQ管理界面. ...
- 联想YOGA3一键恢复系统教程
- PHP array_merge_recursive()
定义和用法 array_merge_recursive() 函数与 array_merge()函数 一样,将一个或多个数组的元素的合并起来,一个数组中的值附加在前一个数组的后面.并返回作为结果的数组. ...
- 学习node js 之微信公众帐号接口开发 准备工作
绪:因工作须要,近期開始学习Node js,之前隐隐约约听到过node js 但没有实际见到过,仅仅好google了:至于什么是node js,能做些什么,有多么好.或者有哪些弊端我这里就不多说了,由 ...
- leetcode_Product of Array Except Self
描写叙述: Given an array of n integers where n > 1, nums, return an array output such that output[i] ...