首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在dotnet中生成jpg缩略图

在.NET中生成JPG缩略图,可以使用System.Drawing命名空间中的Image类。以下是一个简单的示例代码:

代码语言:csharp
复制
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public static void GenerateThumbnail(string inputPath, string outputPath, int width, int height)
{
    using (Image originalImage = Image.FromFile(inputPath))
    {
        int sourceWidth = originalImage.Width;
        int sourceHeight = originalImage.Height;

        // 计算缩略图的宽度和高度
        int thumbnailWidth = width;
        int thumbnailHeight = height;

        // 如果原始图像的宽度和高度都大于缩略图的宽度和高度,则按比例缩放
        if (sourceWidth > width && sourceHeight > height)
        {
            double widthRatio = (double)width / sourceWidth;
            double heightRatio = (double)height / sourceHeight;
            double scaleRatio = Math.Min(widthRatio, heightRatio);

            thumbnailWidth = (int)(sourceWidth * scaleRatio);
            thumbnailHeight = (int)(sourceHeight * scaleRatio);
        }

        // 创建缩略图
        using (Bitmap thumbnailImage = new Bitmap(thumbnailWidth, thumbnailHeight))
        {
            using (Graphics graphics = Graphics.FromImage(thumbnailImage))
            {
                graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                graphics.SmoothingMode = SmoothingMode.HighQuality;
                graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
                graphics.CompositingQuality = CompositingQuality.HighQuality;

                graphics.DrawImage(originalImage, new Rectangle(0, 0, thumbnailWidth, thumbnailHeight));
            }

            // 保存缩略图为JPG格式
            thumbnailImage.Save(outputPath, ImageFormat.Jpeg);
        }
    }
}

该方法接受四个参数:原始图像的路径、缩略图的路径、缩略图的宽度和高度。它首先读取原始图像,然后计算缩略图的宽度和高度,并创建一个新的Bitmap对象。接着,使用Graphics对象将原始图像绘制到Bitmap对象中,并保存为JPG格式。

请注意,该方法仅适用于.NET Framework和.NET Core 2.0及更高版本。如果您使用的是.NET Core 1.x,则需要安装System.Drawing.Common包。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

纯JaveScript实现报表导出:从“PDF”到“JPG

这时候问题就出现了,我们的前端电子报表并没有默认图片保存的格式,那这时候我们如何用已有功能进一步扩展,来实现这个功能呢? 一、确定实现思路 巧妇难为无米之炊,首先我们先整理一下手中素材。...通过阅读文档了解我们可以自定义添加按钮: 同时我们还可以action属性,给按钮定义点击后触发的事件: 顺着这个思路,我们可以工具栏添加一个导出按钮,将按钮的动作设置为"点击这个按钮时实现导出图片的功能...另外,为了document插入canvas元素,事先可以建立一个div元素,以便之后该节点下插入canvas元素;同时为了界面只有报表查看器,可以隐藏该div。...(提示:以上icon 的content的属性,使用了一个svg,这个示例代码的svg来自网站:ikonate 。...如果大家有需要可自行下载,如果作为商用需要注意版权 ) 以上代码添加之后,我们就可以报表预览界面的工具栏看到这样一个按钮: 实现导出PDF exportImageButton的action定义一个

2.1K30

dockers调试dump的dotnet程序

其他调试参考文章 centos7使用lldb调试netcore应用转储dump文件 centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试) 生成dump文件 如何在...docker容器里面创建dump文件请参考:dotnet core调试docker下生成的dump文件 构建一个dotnet,lldb的docker image dockerfile 文件,基于microsoft...dotnet tool install -g dotnet-sos #插件安装完成后,运行 dotnet-sos install #如果找不到命令,可以到`~/.dotnet/tools`下面去。...方便有效查看堆栈信息 dotnet tool install -g dotnet-symbol 插件安装后,针对要调试的dump文件下载对应的符号,实用程序dotnet-symbol将自动为我们的dump...#cd 到一个dump文件所在目录 dotnet-symbol 启动lldb进行调试 #dump文件目录 lldb-3.9 dotnet -c 参考 https

1.2K20
  • gRPCC#的未来属于grpc-dotnet

    2019 年 9 月,我们宣布[3]了一个新的gRPC C#实现[4]的普遍可用性,它不再基于 gRPC C 核心原生库,而是使用了.NET Core 3 和 ASP.NET Core 3 添加的...从那时起,新的 grpc-dotnet 实现已经取得了很大的进展:它被许多用户所采用并变得非常流行,它已经被许多生产环境的应用程序所使用,并且还添加了许多有趣的新特性。...在这两种稳定的 C#实现,grpc-dotnet 实现无疑是未来潜力更大的一个。它是一个更现代的实现,与.NET 的现代版本很好地集成在一起,而且它很可能与 C#社区几年后的发展方向更加一致。...Grpc.Core nuget 包将继续 nuget.org 仓库可用,但不会提供更多的修复(=甚至没有安全修复)。...我们强烈建议新项目中只使用 grpc-dotnet。我们将在未来停止支持 Grpc.Core。 这是否意味着我现在需要停止使用 Grpc.Core 吗?

    2K40

    WordPressRSS Feed 输出自定义特色图像(缩略图

    估计不少网友是了解到Google Reader 关闭的消息后才知道RSS这种东西的,本站DeveWork. com 曾经有过《WordPressRSS Feed 输出版权信息》的相关教程,今天则给出个...WordPressRSS Feed 输出自定义特色图像的方法,该方法支持通过自定义字符获取的特色图像。...一般来说,如果主题支持特色图像(缩略图),主题的 functions.php 文件下加入以下代码就可以实现RSS 输出自定义特色图像(缩略图)的功能: //Feed 输出文章特色图像(缩略图)devework.com...我的特殊图像是通过外链来的(你应该知道,WordPress 本身的特色图像功能不支持外链),就是通过自定义字符来实现特色图像(缩略图)功能。...如果不明白我前面说的是什么,可以参考《WordPress自定义栏目运用实例 VI:设置外链缩略图/特色图像》。 网络上是没有相关方法的,不过经过Jeff 的一番探索,写出了以下代码完美实现。

    1.4K100

    intellij idea快速生成测试代码

    intellij idea快速生成测试代码 将鼠标放到类的任意位置,摁下Ctrl+Shift+T,然后Create a new Test即可。...通常我们可以待测方法所在的类之上使用@RunWith注解来为这个测试类指定一个特定的Runner。Junit的默认Runnner------BlockJunit4ClassRunner。...Suit------它可以一次生执行全面多个类的测试用例,例如: @RunWith(Suite.class) @SuiteClasses({Person.class, People.class})...public class TestSuitMain{ //虽然这个类是空的,但依然可以运行Junit测试,运行时,它会将Person.class和//People.class的所有测试用命都执行一遍...}Parameterized------普通的单元测试中被@Test注解标注的测试方法只能是public void的,且不能有任何输入参数。

    3.1K00

    生成对抗网络(GAN):图像生成和修复的应用

    GAN图像生成的应用 图像生成 风格迁移 GAN图像修复的应用 图像修复 拓展应用领域 总结 欢迎来到AIGC人工智能专栏~生成对抗网络(GAN):图像生成和修复的应用 ☆* o(≧▽...两者通过对抗性的训练相互提升,最终生成生成的图像越来越接近真实图像。 GAN图像生成的应用 图像生成 GAN最著名的应用之一就是图像生成生成器通过随机向量作为输入,逐渐生成逼真的图像。...这种方法艺术创作、虚拟场景生成等领域有广泛应用。...content_image = tf.keras.applications.vgg19.preprocess_input(content_image) style_targets = style_features GAN图像修复的应用...自然语言处理,GAN可以用于生成文本、对话生成等。医疗领域,GAN可以用于生成医学图像,辅助医生进行诊断。艺术创作领域,GAN可以创作出独特的艺术作品。

    57410

    stable diffussion控制生成图片的光线

    在这篇文章,我会告诉你如何在stable diffussion控制生成图片的光线。 软件 我们将使用 AUTOMATIC1111 Stable Diffusion GUI 来创建图像。...提示添加关键词rim lighting: Sunlight为图像添加了阳光。它倾向于呈现自然背景。 提示添加关键词Sunlight。 Backlight将光源置于主题之后。...提示添加dimly lit。 Crepuscular rays云层添加了光线穿透的光线。它可以创造出令人惊叹的视觉效果。...一次生成几张图像进行测试。 提示生成器中找到更多的光线关键词。 控制特定区域的光线 提示的光线关键词适用于整个图像。这里我会告诉你如何控制特定区域的光线。...Txt2img 设置 安装好controlNet之后,txt2img页面上,像平常一样生成图像。 点击发送到 img2img。

    9810

    pyqt5展示pyecharts生成的图像

    而pyecharts是相当于echarts的python版本,可以比较方便的制作一些非常精美的可视化图片,因为生成的一般是html格式的,所以对于平台的可迁移性相对较好。...这里我们主要探索一下pyqt5制作出来的界面中集成一个pyecharts生成的页面,效果图如下所示: 环境依赖 这里主要依赖于pyecharts和pyqt5这两个库,但是由于pyqt55.10.1...pyecharts配置散点图的参数时,主要方法是调用Scatter的函数来进行构造,比如我们常用的一些窗口工具,区域缩放等功能,就可以Scatter添加一个toolbox来实现: toolbox_opts...通过pyecharts构造了图层之后,需要通过: render("/tmp/scatter.html") 的方法将生成的效果图保存成一个本地的html文件。...选取一部分之后的展示效果如下图所示: 总结概要 本文通过一个实际的散点图案例,展示了如何使用pyqt5嵌套一个pyecharts图层的方法,通过这个技巧,可以pyqt5的框架也实现精美的数据可视化的功能模块

    2.1K20

    生成对抗网络(GANs)AIGC的应用

    生成对抗网络(GANs)AIGC的应用 生成对抗网络(Generative Adversarial Networks, GANs)是近年来人工智能生成内容(Artificial Intelligence...本文将深入探讨GANsAIGC的应用,并通过一个代码实例来展示其工作原理。...GANsAIGC的应用 GANsAIGC领域有广泛的应用,包括但不限于以下几个方面: 图像生成:GANs能够生成逼真的图像,包括人脸、风景和艺术作品等。...生成与强化学习结合:将GANs与强化学习相结合,探索复杂环境中生成高质量内容的新方法。例如,游戏开发,GANs可以用于生成多样化的游戏场景和角色。...结论 生成对抗网络(GANs)AIGC的应用展示了其强大的生成能力和广泛的应用前景。通过改进训练稳定性、增强生成样本的多样性和减少计算资源需求,研究者们不断推动GANs技术的发展。

    28330

    Thumbnailator的简介和使用范例

    简单介绍 Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。...|Graphics.drawImage生成缩略图 可以缩略图中嵌入水印,并且可以设置水印的透明度 * * * * 支持生成经过旋转后的缩略图 * * * * * 代码: for...: Thumbnails.of("original.jpg") .size(160, 160) .toFile("thumbnail.jpg"); 生成一个带有旋转和水印的缩略图...")); 这段代码是从original.jpg这张图片生成最大尺寸160*160,顺时针旋转90°,水印放在右下角,50%的透明度,80%的质量压缩的缩略图。...把生成的图片输出到输出流(OutPutStream) OutputStream os = ...; Thumbnails.of("large-picture.jpg

    2.1K10

    Java实现Postman自动生成Cookie的功能

    Java实现Postman自动生成Cookie的功能,通常涉及到模拟HTTP请求,处理服务器的响应,并提取Cookie信息。...网络的Cookie,指的是当你使用互联网时,网站服务器发送到你的浏览器并存储本地计算机上的一小段数据。这些数据用于帮助网站记住你的信息和浏览习惯,从而提供更加个性化的网页浏览体验。...**购物车功能**:在线购物网站使用Cookie来记住你放入购物车的商品,即使你关闭了浏览器或重新访问网站,这些商品仍然购物车。4....**跟踪用户行为**:网站可以通过Cookie来跟踪用户在网站上的行为,比如点击了哪些链接、页面上停留了多长时间等,这些信息有助于网站所有者改进网站设计和内容。5....此外,如果您想要模拟Postman的更多功能,如设置请求头、发送POST请求等,您需要相应地修改代码。

    5410

    .NET 调整图片尺寸(Resize)各种方法

    本文中如无特别说明 .NET 指 .NET 5或者更高版本,代码同样可用于 .NET Core 前言 调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求...1.ImageSharp 开源地址:https://github.com/SixLabors/ImageSharp 安装: dotnet add package SixLabors.ImageSharp....Resize(new Size(50,50)).Save(""); } 3.SkiaSharp 开源地址:https://github.com/mono/SkiaSharp 安装: dotnet...开源地址:https://github.com/kleisauke/net-vips 安装: dotnet add package NetVips dotnet add package NetVips.Native...该组件额外提供了一个生成缩略图的方法ThumbnailImage(),可以自定义宽高,如果只穿宽度,那么将保持纵横比。

    1.6K50

    【Nginx】面试官竟然问我Nginx如何生成缩略图,还好我看了这篇文章!!

    还有就是,我通过小程序开通了留言功能,小伙伴们如果对文章有什么好的建议和意见,或者阅读文章时,有什么疑问,都可以留言区进行留言!!...http://www.binghe.com/123_100x10.jpg 当我们浏览器地址栏输入上面的链接时,Nginx会作出如下的逻辑处理。...首先判断是否存在原图 123.jpg,不存在直接返回 404(如果原图都不存在,那就没必要生成缩略图了) 跳转到 http://www.binghe.com/123.jpg?...h=100&w=10,将参数高 h=100 和宽 w=10 带到 url 。 Image_filter resize 指令根据 h 和 w 参数生成相应缩略图。...生成缩略图只是 image_filter 功能的一个,它一共支持 4 种参数: test:返回是否真的是图片 size:返回图片长短尺寸,返回 json 格式数据 corp:截取图片的一部分,从左上角开始截取

    1.3K10

    为WordPress开启Nginx缩略图功能,七牛从此陌路

    这几天公司组织外出拓展训练,我和一个开发同事(国添)聊到了 nginx 时,得知 Nginx 还有个缩略图功能!...(jpg|gif|png)$ /$1.$4 break;             #生成缩略图             image_filter resize $width $height;             ...(jpg|gif|png)$ /$1.$4 break;             #生成缩略图             image_filter crop $width $height;             ...另外,带尺寸的图片地址其实是不存在的,而是 Nginx 实时生成的,我们可以通过浏览器 F12 开发模式, network 界面查看 header 信息就可以看到我们插入的标识: ?...Ps:本来想模仿七牛的缩略图访问方式,图片后面加上 ?w=300&h=300 请求参数来指定缩略图尺寸,可惜折腾了半天,问题总是原图和缩略图之间徘徊,只得暂时放弃了。

    1.3K50

    详解Python图像处理Pillow库

    四、图像处理高级功能图像缩略图。Pillow库的thumbnail()方法可以生成图像的缩略图。我们可以指定缩略图的最大尺寸。...代码示例:from PIL import Image# 打开图像文件image = Image.open("image.jpg")# 生成缩略图thumbnail_size = (200, 200)image.thumbnail...(thumbnail_size)# 保存缩略图image.save("thumbnail.jpg")在上面的例子,我们使用thumbnail()方法生成200x200像素的缩略图,并将缩略图保存为"thumbnail.jpg...")在上面的例子,我们使用ImageDraw模块创建了一个绘图对象,并使用text()方法图像上添加了水印文本。...掌握Pillow库的使用,将使你能够Python中进行图像处理、生成缩略图、添加水印等操作。希望本文对你理解和应用Pillow库进行图像处理有所帮助。

    34760

    综述 | 解析生成技术时空数据挖掘的应用

    该综述考虑到时空数据的显著增长和多样性,重点关注将生成技术整合到时空数据挖掘。随着RNNs、CNNs和其他非生成技术的进步,研究人员探索了它们捕获时空数据内部的时间和空间依赖关系的应用。...通过将生成技术整合并提供一个标准化框架,本文有助于推动该领域的发展,并鼓励研究人员探索生成技术时空数据挖掘的巨大潜力。...图4 固定时间和地点以及不固定时间和空间的栅格数据示意图 生成技术时空数据挖掘的应用 01、大语言模型(LLMs) 大规模语言模型(LLMs)自然语言处理和计算机视觉领域表现出色。...图6 综合分类法 这些类别的每一个都提供了独特的方法来应对时空分析的挑战。每个类别内,已经进行了特定的研究,以通过针对这些任务的特定生成技术来解决不同类型的时空任务。...总结 本文揭示了生成技术时空数据挖掘的融合,并承认了这一数据领域的增长和复杂性。本文基于生成技术对时空方法进行了全面分析,并介绍了一个针对数据挖掘流程的标准化框架。

    24411
    领券