首页 > 编程语言 >C# 图片保存 缩略图保存

C# 图片保存 缩略图保存

时间:2024-07-14 20:57:45浏览次数:19  
标签:缩略图 C# image 保存 int flag targetWidth

前言

项目需要保存缩略图,写了个简单的保存代码。
在包控制管理工具中安装Magick.NET-Q16-AnyCPU
using ImageMagick;


代码

根据原图的格式保存缩略图

        /// <summary>
        /// 保存缩略图
        /// </summary>
        /// <param name="originalFilePath">原图地址</param>
        /// <param name="destinationFilePath">模板地址</param>
        /// <param name="targetWidth">目标大小</param>
        public static int ResizeAndSaveImage(string originalFilePath, string destinationFilePath, int targetWidth)
        {
            int flag = 0;
            using (MagickImage image = new MagickImage(originalFilePath))
            {
                if (image.Width > targetWidth)
                {
                    int targetHeight = (int)(((double)targetWidth / image.Width) * image.Height);

                    image.Resize(targetWidth, targetHeight);
                    image.Write(destinationFilePath);
                    flag = 1;
                }
                else
                {
                    image.Resize(image.Width, image.Height);
                    image.Write(destinationFilePath);
                    flag = 1;
                }
            }
            return flag;
        }

标签:缩略图,C#,image,保存,int,flag,targetWidth
From: https://blog.csdn.net/roc_wei_chen/article/details/140289722

相关文章

  • 将虚拟机跑在ceph之中
    目录openStack对接ceph1.cinder对接ceph1.1ceph创建存储池1.2ceph授权1.3下发ceph文件1.4修改globals文件1.5部署cinder1.6创建卷null2.nova对接ceph2.1创建卷2.2更新cinder权限2.3修改globals文件2.4创建目录2.5升级nova3.验证nova3.1检查存储池3.2创建虚拟机3.......
  • Docker Hub 镜像
    在现代软件开发中,Docker镜像已经成为不可或缺的工具。然而,最近频频出现的Docker镜像下架事件让许多开发者措手不及。突然失去依赖的镜像,不仅打乱了项目进程,还引发了许多不便。那么,面对Docker镜像下架,我们应该如何应对?  上海交通大学开源镜像站不再提供DockerHub仓库镜像......
  • Acwin-3692. 最长连续公共子序列——待续
    1.题目输入两个字符串s1,s2。输出最长连续公共子串长度和最长连续公共子串。输入格式一行,两个字符串s1,s2,用空格隔开。输出格式第一行输出最长连续公共子串的长度第二行输出最长连续公共子串。如果不唯一,则输出s1中的最后一个。数据范围1≤|s1|,|s2|≤100数据保证......
  • Solution - Atcoder AGC022D Shopping
    考虑到不管怎么走,都是\(0\)最后又绕回\(0\),于是答案肯定是\(2L\)的倍数。那么考虑\(\frac{\operatorname{ans}}{2L}\)即可。那么对于\(t_i\),可以先让答案加上\(\lfloor\frac{t_i}{2L}\rfloor\),同时令\(t_i\leftarrowt_i\bmod2L\)。原因就是考虑到这被去除掉的\(2......
  • C++使用gnuplot-cpp库绘制图像
    最近想要对一些时变的变量进行可视化,搜索来搜索去选择了使用gnuplot这个工具。sudoapt-getinstallgnuplotsudoapt-getinstallgnuplot-x11#使其支持linux终端这样就安装完gnuplot了。接着可以在命令行中键入gnuplot命令打开gnuplot的交互式环境。由于这里着目于使用c++......
  • MapReduce简述
    概念面向批处理的分布式计算框架;一种编程模型,分为Map(映射)和Reduce(化简)阶段核心思想分而治之,并行计算;移动计算而非移动数据特点计算跟着数据走良好的扩展性(计算能力随着节点数增加近似线性递增)高容错适合海量数据的离线批处理降低了分布式编程的门槛不适合的场景......
  • 关于Kafka Topic分区和Replication分配的策略
    文章目录1.Topic多分区2.理想的策略3.实际的策略4.如何自定义策略1.Topic多分区如图,是一个多分区Topic在Kafka集群中可能得分配情况。P0-RL代表分区0,Leader副本。这个Topic是3分区2副本的配置。分区尽量均匀分在不同的Broker上,分区的Follower副本尽量不和Lea......
  • C——空间申请总结
    void*malloc(size_tsize);int*p=(int*)malloc(sizeof(int)*10);malloc进行对堆空间的申请,将申请的堆空间赋给p,我们申请的堆空间返回的是空间地址我们要使用一个指针来进行存储;只会接受一个参数就是空间的大小void*calloc(size_tnum,size_tsize);......
  • C++ static关键字
    在C++中,static关键字有多种用途,主要用于控制变量和函数的存储期和链接性。下面详细介绍static关键字在不同上下文中的用法,并提供相应的代码示例。1.静态局部变量静态局部变量在函数中定义,但它们的生命周期贯穿程序的整个运行周期,而不仅仅是函数的执行周期。静态局部变量......
  • 动态内存管理 (malloc,calloc,relloc)
    1.为什么要有动态内存分配我们已经掌握的内存开辟⽅式有:intval=20;//在栈空间上开辟四个字节chararr[10]={0};//在栈空间上开辟10个字节的连续空间12但是上述的开辟空间的⽅式有两个特点:•空间开辟⼤⼩是固定的。•数组在申明的时候,必须指定数组的⻓度,数组空......