截图和压缩图片
2015-05-31 20:08
274 查看
截图(全屏):
private void tsbScreenshot_Click(object sender,
EventArgs e)
{
try
{
Graphics g =
Graphics.FromImage(myImage);
g.CopyFromScreen(new
Point(0, 0), new
Point(0, 0), new
Size(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height));
IntPtr dc1 = g.GetHdc();
g.ReleaseHdc(dc1);
string FileName =
Application.StartupPath + "\\Records\\" +
DateTime.Now.ToString("yyyyMMdd_hhmmss") +
".jpg";
myImage.Save(FileName);
g.Dispose();
if (CompressImage(FileName, FileName, 50) ==
true)
{
File.Delete(FileName);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
压缩:
public static
bool CompressImage(string InputFileAddress,
string OutputFileAddress,
int CompressionRate)
{
System.Drawing.Image iSource = System.Drawing.Image.FromFile(InputFileAddress);
ImageFormat tFormat = iSource.RawFormat;
//以下代码为保存图片时,设置压缩质量
EncoderParameters ep =
new EncoderParameters();
long[] qy =
new long[1];
qy[0] = CompressionRate;//设置压缩的比例1-100
EncoderParameter eParam =
new EncoderParameter(System.Drawing.Imaging.Enco
4000
der.Quality, qy);
ep.Param[0] = eParam;
try
{
ImageCodecInfo[] arrayICI =
ImageCodecInfo.GetImageEncoders();
ImageCodecInfo jpegICIinfo =
null;
for (int x = 0; x < arrayICI.Length; x++)
{
if (arrayICI[x].FormatDescription.Equals("JPEG"))
{
jpegICIinfo =arrayICI[x];
break;
}
}
if (jpegICIinfo !=
null)
{
iSource.Save(OutputFileAddress, jpegICIinfo, ep);//dFile是压缩后的新路径
}
else
{
iSource.Save(OutputFileAddress, tFormat);
}
return
true;
}
catch
{
return
false;
}
finally
{
iSource.Dispose();
}
}
private void tsbScreenshot_Click(object sender,
EventArgs e)
{
try
{
Graphics g =
Graphics.FromImage(myImage);
g.CopyFromScreen(new
Point(0, 0), new
Point(0, 0), new
Size(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height));
IntPtr dc1 = g.GetHdc();
g.ReleaseHdc(dc1);
string FileName =
Application.StartupPath + "\\Records\\" +
DateTime.Now.ToString("yyyyMMdd_hhmmss") +
".jpg";
myImage.Save(FileName);
g.Dispose();
if (CompressImage(FileName, FileName, 50) ==
true)
{
File.Delete(FileName);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
压缩:
public static
bool CompressImage(string InputFileAddress,
string OutputFileAddress,
int CompressionRate)
{
System.Drawing.Image iSource = System.Drawing.Image.FromFile(InputFileAddress);
ImageFormat tFormat = iSource.RawFormat;
//以下代码为保存图片时,设置压缩质量
EncoderParameters ep =
new EncoderParameters();
long[] qy =
new long[1];
qy[0] = CompressionRate;//设置压缩的比例1-100
EncoderParameter eParam =
new EncoderParameter(System.Drawing.Imaging.Enco
4000
der.Quality, qy);
ep.Param[0] = eParam;
try
{
ImageCodecInfo[] arrayICI =
ImageCodecInfo.GetImageEncoders();
ImageCodecInfo jpegICIinfo =
null;
for (int x = 0; x < arrayICI.Length; x++)
{
if (arrayICI[x].FormatDescription.Equals("JPEG"))
{
jpegICIinfo =arrayICI[x];
break;
}
}
if (jpegICIinfo !=
null)
{
iSource.Save(OutputFileAddress, jpegICIinfo, ep);//dFile是压缩后的新路径
}
else
{
iSource.Save(OutputFileAddress, tFormat);
}
return
true;
}
catch
{
return
false;
}
finally
{
iSource.Dispose();
}
}
相关文章推荐
- TestNg的IReporter接口的使用
- 南大莫砺锋教授结婚三十年纪念写给妻子的“赠内诗”十首
- 属性和实例变量的区别
- 2015 百度之星 1004 KPI STL的妙用
- Facebook内部分享:25个高效工作的小技巧
- [Python]网络爬虫(八):糗事百科的网络爬虫(v0.3)源码及解析(简化更新)
- 汇编学习笔记3——jmp命令与DEBUG进阶指令
- java
- Android 继承DialogFragment弹出dialog对话框一
- Android Service使用方法--简单音乐播放实例
- QUANTSTRATTRADER
- 会员卡管理系统技术解析(十一)会员卡退领记录查询
- java自动装箱和拆箱
- Linux-dd命令详解
- 智力题(第一集)
- 如何退出调起多个Activity的Application?
- INI文件读写操作
- 3D数学基础及图形与游戏开发的学习 (一)
- 一个RCurl抓取美团网信息的实例
- P124 第三章 41题 验证哥德巴猜想