C#缩略图多路径多格式保存的实例
发布时间:2021-10-29 18:12:36
标签:缩略图,格式,保存
using System;
using System.Drawing;
namespace PubLib
{
/// <summary>
/// PicShow 的摘要说明。
/// </summary>
public class PicShow
{
public PicShow()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//查找图片文件是否存在
public static string ViewPIC(string PicPath, string PicName)
{
string BigPic = Checks.HM_PHYSICSROOT + "MoviePIC/"+Checks.HM_PICROOTPATH+"/"+PicName;
string SmlPic = Checks.HM_PHYSICSROOT + "MoviePIC/"+PicPath+"/"+PicName;
if (null==PicName || false==System.IO.File.Exists(BigPic)) //大图名称为空或文件不存在
PicName = "nopic.jpg";
string OutPic = "MoviePIC/"+PicPath+"/"+PicName;
if (!System.IO.File.Exists(SmlPic)) //查找小图不存在
{
CreatePIC(PicPath, PicName);
return OutPic;
}
return OutPic;
}
//创建缩略图
public static void CreatePIC(string PicPath, string PicName)
{
int iWidth,iHeight;
if (null!=PicPath && PicPath.IndexOf("X")>1)
{
char[] spliter = {X};
string[] aPicPath = PicPath.Split(spliter,2);
iWidth = Int32.Parse(aPicPath[0]);
iHeight = Int32.Parse(aPicPath[1]);
string BigPic = Checks.HM_PHYSICSROOT + "MoviePIC/"+Checks.HM_PICROOTPATH+"/"+PicName;
string SmlPic = Checks.HM_PHYSICSROOT + "MoviePIC/"+PicPath+"/"+PicName;
Image BigImage = Image.FromFile(BigPic);
Image SmlImage = BigImage.GetThumbnailImage(iWidth,iHeight,null,new System.IntPtr());
SmlImage.Save(SmlPic,System.Drawing.Imaging.ImageFormat.Jpeg);
BigImage.Dispose();
SmlImage.Dispose();
}
}
}
}
Checks.HM_PHYSICSROOT 是一个静态变量是系统的根路径,你问怎么获得?其实很简单你可以直接写个路径给它。虽然不灵活但也还算简单。我是这么搞的
public static string HM_PHYSICSROOT = AppDomain.CurrentDomain.BaseDirectory;
(其实也简单顾弄玄虚:~)
多路径,也就是说的有点吓人而已,你在生成缩略图的时候指定一个路径就可以了。就是这个参数PicPath是要你手工指定的,多格式说白了就是大小可以调整。我的方法是路径就是大小,比如200*300的图片路径就叫200X300嘿嘿,当然要指定一个图片原始路径,不然从那里得到图片来生成缩略啊。这个Checks.HM_PICROOTPATH就只能手写了,没什么办法。反正一次写了以后也不改动了。


猜你喜欢
- 异常处理是每个项目中都绕不开的话题,那么如何优雅的处理异常,是本文的话题。本文将结合SpringBoot框架一起和大家探讨下。要思考的问题在
- JOL简介JOL的全称是Java Object Layout。是一个用来分析JVM中Object布局的小工具。包括Object在内存中的占用
- 前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基
- 1 请求映射 在SpringBoot中使用@XxxMapping注解完成前端请求与后端方法的一个映射。以前的时候,通常使用url映射命名的
- 概念CAS的全称是Compare-And-Swap,它是cpu并发原语它的功能是判断内存某个位置的值是否为预期值。如果是则更改为新的值,这个
- Maven setting中私有仓库配置浅析最近遇到过不少这样那样的问题,曾经做过maven的分享,但是发现当时部分内容还是太想当然了,下面
- (1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对
- 本文实例讲述了Java matches类,Pattern类及matcher类用法。分享给大家供大家参考,具体如下:Pattern类正则表达式
- 区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的。这篇文章就是帮助你使用 Java
- 在c#中"??"为空合并运算符,用于定义可空类型和引用类型的默认值。(1)如果此运算符的左操作数不为 null,则此运算
- RestTemplate简介Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTem
- 有小伙伴表示微人事(https://github.com/lenve/vhr)的权限粒度不够细。不过松哥想说的是,技术都是相通的,明白了 v
- 前言什么是mybatis二级缓存?二级缓存是多个sqlsession共享的,其作用域是mapper的同一个namespace。即,在不同的s
- 上一篇博文说到了Shader的五个子类 - BitmapShader - LinearGradient - RadialGradient -
- JAVA的 * 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤
- C语言中的数组索引必须保证位于合法的范围内!示例代码如下:enum {TABLESIZE = 100};int *table = NULL;
- 本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐
- 大家好,因为近期做需求中遇到了文件上传这个东西,而且我这个还是跨服务去传输文件的所以我这边使用了httpclient和RestTemplat
- 本文实例为大家分享了unity实现虚拟摇杆控的具体代码,供大家参考,具体内容如下using UnityEngine;using UnityE
- 详解Java中HashSet和TreeSet的区别1. HashSetHashSet有以下特点:不能保证元素的排列顺序,顺序有可能发生变化不