C# 手动/自动保存图片的实例代码
发布时间:2023-08-06 09:36:35
view plaincopy to clipboardprint?
//手动保存图片
private void saveBtn_Click(object sender, System.EventArgs e)
{
bool isSave = true;
SaveFileDialog saveImageDialog = new SaveFileDialog();
saveImageDialog.Title = "图片保存";
saveImageDialog.Filter= @"jpeg|*.jpg|bmp|*.bmp|gif|*.gif";
if(saveImageDialog.ShowDialog() == DialogResult.OK)
{
string fileName = saveImageDialog.FileName.ToString();
if(fileName != "" && fileName != null)
{
string fileExtName = fileName.Substring(fileName.LastIndexOf(".")+1).ToString();
System.Drawing.Imaging.ImageFormat imgformat = null;
if(fileExtName!="")
{
switch(fileExtName)
{
case "jpg":
imgformat = System.Drawing.Imaging.ImageFormat.Jpeg;
break;
case "bmp":
imgformat = System.Drawing.Imaging.ImageFormat.Bmp;
break;
case "gif":
imgformat = System.Drawing.Imaging.ImageFormat.Gif;
break;
default:
MessageBox.Show("只能存取为: jpg,bmp,gif 格式");
isSave = false;
break;
}
}
//默认保存为JPG格式
if(imgformat == null)
{
imgformat = System.Drawing.Imaging.ImageFormat.Jpeg;
}
if(isSave)
{
try
{
this.pictureBox1.Image.Save(fileName,imgformat);
//MessageBox.Show("图片已经成功保存!");
}
catch
{
MessageBox.Show("保存失败,你还没有截取过图片或已经清空图片!");
}
}
}
}
}
//自动保存图片
private void Autosave()
{
string Opath =@"D:\VedioCapture\Photo";
string photoname = DateTime.Now.Ticks.ToString();
if (Opath.Substring(Opath.Length-1, 1) != @"\")
Opath = Opath + @"\";
string path1 = Opath + DateTime.Now.ToShortDateString();
if (! Directory.Exists(path1))
Directory.CreateDirectory(path1);
//pictureBox1.Image.Save(path1 +"\\" + photoname + ".jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
//图像的缩小
System.Drawing.Bitmap objPic,objNewPic;
try
{
objPic = new System.Drawing.Bitmap(pictureBox1.Image);
objNewPic=new System.Drawing.Bitmap(objPic,pictureBoxShow.Width,pictureBoxShow.Height);
//objNewPic=new System.Drawing.Bitmap(objPic,320,240);//图片保存的大小尺寸
objNewPic.Save(path1 +"\\" + photoname + ".jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch(Exception exp){throw exp;}
finally
{
objPic=null;
objNewPic=null;
}
}


猜你喜欢
- 今天遇到一个需求对上传的图铺满水印,在网上找了半天都是在指定位置设置水印,下面代码是我通过在网上找的代码,然后改造而成的。我们先看一下效果图
- 目录直播界面滑动隐藏效果用户交互页实现礼物进入时动画礼物移出动画开启定时清理礼物列表直播界面实现的是播放本地的视频文件:/** * 直播界面
- RibbonRibbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件Ribbon 可以用来做客户端负载均衡,调用注册中心
- 本篇主要讲解如何使用Ideal 搭建Spring的源码环境,想必大家都会多多少少去看过Spring的部分源码,一般我们都是直接点进某个Spr
- C# 的析构以及垃圾回收实例分析看书时,自己写的例子代码,了解到几个知识点,记载下来。同时发现自己手写代码的能力比较弱,还是得多写一下。us
- 如下所示:using System.Linq;List<string> ListA = new List<string&g
- 一、使用方法查找DLL文件,通过Reflection反射类库里的各种方法来操作dll文件二、步骤加载DLL文件Assembly assemb
- 1. 前言Android LayerDrawble 包含一个Drawable数组,系统将会按照这些Drawable对象的数组顺序来绘制他们,
- AntPathMatcher前言(1)SpringMVC的路径匹配规则是依照Ant的来的,实际上不只是SpringMVC,整个Spring框
- 本文实例讲述了java实现简单的英文文本单词翻译器功能。分享给大家供大家参考,具体如下:直接上代码:package fanyi;import
- 本章节内容很丰富,主要有基本的表单操作,数据的格式化,数据的校验,以及提示信息的国际化等实用技能。首先看效果图项目结构图接下来用代码重点学习
- 本文实例讲述了Android开发之开关按钮用法。分享给大家供大家参考,具体如下:效果如下:以下是布局文件:<?xml version=
- 1. Java安装与环境配置Hadoop是基于Java的,所以首先需要安装配置好java环境。从官网下载JDK,我用的是1.8版本。 在Ma
- 概述Selenium是一款免费的分布式的自动化测试工具,支持多种开发语言,无论是C、 java、ruby、python、或是C# ,你都可以
- 以前在公司做项目的时候,遇到了分辨率的适配问题,说起来当时挺纠结的,因为没有外网,所以这个问题,都是黑暗中摸索的,尝试了许多方法,最后和徒弟
- 前言在学习springboot 之后想结合着html做个小demo,无奈一直没掌握窍门,在多番的搜索和尝试下终于找到了配置的方法,使用thy
- 一、什么是委托呢?听着名字挺抽象,确实不好理解。面试官最喜欢考察这个,而且更喜欢问:“委托和事件有何异同?”。如果对一些知识点没有想明白,那
- Java动态数组Arraylist存放自定义数据类型class Point{ int x; int y; public Point(int
- 一、HashMap初始化方法HashMap() 不带参数,默认初始化大小为16,加载因子为0.75;HashMap(int initialC
- 一、说明Boost.MPI 提供了 MPI 标准(消息传递接口)的接口。该标准简化了并发执行任务的程序的开发。您可以使用线程或通过共享内存或