用C#轻松在DOTNET中实现缩略图

物联网边缘计算实战:树莓派部署YOLOv8,从零优化到实时检测可用 园区/厂区周界入侵检测、异物识别农业大棚的病虫害、人员闯入检测产线边角料、简单缺陷检测无人值守机房的人员入侵、设备状态识别它的核心优势是极致的性价比:单设备硬件成本几百元,功耗几瓦,部署灵活,配合云端平台可以轻松实现大规模点位的分布式边缘AI部署。对于工业物联网从业者来说,不用迷信高端边缘网关。很多场景下,把轻量化模型做好优化,普通的树莓派就能跑出足够好用的效果,用十分之一的成本,解决八成的边缘检测需求。 阅读详情
以前,在页面上实现缩略图必须借助第三方组件。现在,有了.NET,就可以很轻松地实现缩略图。下面就是实现缩略图的例子。

ToThumbnailImage.aspx

<%@ Page language="c#" Codebehind="ToThumbnailImage.aspx.cs" Src="ToThumbnailImage.aspx.cs" AutoEventWireup="false"

Inherits="Exam_C.ToThumbnailImage" %>
<html>
  <head>
    <title>Lion互动网络 =>生成缩略图</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">
     </form>
  </body>
</html>

 ToThumbnailImage.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;
namespace Exam_C
{
 /// <summary>
 /// ToThumbnailImage 的摘要说明。
 /// </summary>
 public class ToThumbnailImage : System.Web.UI.Page
 {
  /* 
  Create By lion 
  2003-05-20 19:00 
  Copyright (C) 2004 www.LionSky.Net. All rights reserved.
  Web: http://www.Lionsky.net ;
  Email: lion-a@sohu.com
  */ 


  static Hashtable htmimes=new Hashtable();
  internal readonly string AllowExt = ".jpe|.jpeg|.jpg|.png|.tif|.tiff|.bmp";
 
  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   #region htmimes[".jpe"]="image/jpeg";
   htmimes[".jpeg"]="image/jpeg";
   htmimes[".jpg"]="image/jpeg";  
   htmimes[".png"]="image/png";  
   htmimes[".tif"]="image/tiff";
   htmimes[".tiff"]="image/tiff";
   htmimes[".bmp"]="image/bmp";
   #endregion
   //调用生成缩略图方法
   ToThumbnailImages("lionsky.jpg","b.gif",300);
  } 
  #endregion

  #region Helper
 
  /// <summary>
  /// 获取图像编码解码器的所有相关信息
  /// </summary>
  /// <param name="mimeType">包含编码解码器的多用途网际邮件扩充协议 (MIME) 类型的字符串</param>
  /// <returns>返回图像编码解码器的所有相关信息</returns>
  static ImageCodecInfo GetCodecInfo(string mimeType)
  {
   ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
   foreach(ImageCodecInfo ici in CodecInfo)
   {
    if(ici.MimeType == mimeType)return ici;
   }
   return null;
  }

  /// <summary>
  /// 检测扩展名的有效性
  /// </summary>
  /// <param name="sExt">文件名扩展名</param>
  /// <returns>如果扩展名有效,返回true,否则返回false.</returns>
  bool CheckValidExt(string sExt)
  {  
   bool flag=false;
   string[] aExt = AllowExt.Split('|');
   foreach(string filetype in aExt)
   {
    if(filetype.ToLower()==sExt)
    {
     flag = true;
     break;
    }
   }  
   return flag;
  }

  /// <summary>
  /// 保存图片
  /// </summary>
  /// <param name="image">Image 对象</param>
  /// <param name="savePath">保存路径</param>
  /// <param name="ici">指定格式的编解码参数</param>
  void SaveImage(System.Drawing.Image image,string savePath,ImageCodecInfo ici)
  {
   //设置 原图片 对象的 EncoderParameters 对象
   EncoderParameters parameters = new EncoderParameters(1);
   parameters.Param[0] = new EncoderParameter(Encoder.Quality, ((long) 90));
   image.Save(savePath, ici, parameters);
   parameters.Dispose();
  }
  #endregion

  #region Methods

  /// <summary>
  /// 生成缩略图
  /// </summary>
  /// <param name="sourceImagePath">原图片路径(相对路径)</param>
  /// <param name="thumbnailImagePath">生成的缩略图路径,如果为空则保存为原图片路径(相对路径)</param>
  /// <param name="thumbnailImageWidth">缩略图的宽度(高度与按源图片比例自动生成)</param>
  public void ToThumbnailImages(string sourceImagePath,string thumbnailImagePath,int thumbnailImageWidth)
  {
   string SourceImagePath = sourceImagePath;
   string ThumbnailImagePath = thumbnailImagePath;
   int ThumbnailImageWidth = thumbnailImageWidth;
   string sExt = SourceImagePath.Substring(SourceImagePath.LastIndexOf(".")).ToLower();
   if(SourceImagePath.ToString()==System.String.Empty) throw new NullReferenceException("SourceImagePath

is null!");
   if(!CheckValidExt(sExt))
   {
    throw new ArgumentException("原图片文件格式不正确,支持的格式有[ "+ AllowExt +"

]","SourceImagePath");
   }
   //从 原图片 创建 Image 对象
   System.Drawing.Image image = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath

(SourceImagePath)); 
   int num = ((ThumbnailImageWidth / 4) * 3);
   int width = image.Width;
   int height = image.Height;
   //计算图片的比例
   if ((((double) width) / ((double) height)) >= 1.3333333333333333f)
   {
    num = ((height * ThumbnailImageWidth) / width);
   }
   else
   {
    ThumbnailImageWidth = ((width * num) / height);
   }
   if ((ThumbnailImageWidth < 1) || (num < 1))
   {
    return;
   }
   //用指定的大小和格式初始化 Bitmap 类的新实例
   Bitmap bitmap = new Bitmap(ThumbnailImageWidth, num, PixelFormat.Format32bppArgb);
   //从指定的 Image 对象创建新 Graphics 对象
   Graphics graphics = Graphics.FromImage(bitmap);
   //清除整个绘图面并以透明背景色填充
   graphics.Clear(Color.Transparent);
   //在指定位置并且按指定大小绘制 原图片 对象
   graphics.DrawImage(image, new Rectangle(0, 0, ThumbnailImageWidth, num));
   image.Dispose();   
   try
   {  
    //将此 原图片 以指定格式并用指定的编解码参数保存到指定文件
    string savepath = (ThumbnailImagePath==null?SourceImagePath:ThumbnailImagePath); 
    SaveImage(bitmap,HttpContext.Current.Server.MapPath(savepath),GetCodecInfo((string)htmimes

[sExt]));
   }
   catch(System.Exception e)
   {
    throw e;
   }
   finally
   {
    bitmap.Dispose();     
    graphics.Dispose();
   }
  }
  #endregion

 }
}

基于WPF+Halcon+C#的通用机器视觉框架设计与实现 机器视觉作为工业自动化和智能制造的核心技术,其核心原理是通过图像采集、处理与分析来模拟人类视觉功能,实现自动检测、识别与测量。在技术实现层面,视觉系统通常遵循图像采集、预处理、特征提取、分析与决策的标准流程。其技术价值在于提升生产效率、保证产品质量与实现生产过程的智能化。在工业检测、医疗影像、科研实验等应用场景中,开发高效、稳定且可扩展的视觉软件平台是关键。本文聚焦于如何利用WPF、Halcon与C#技术栈,构建一个模块化、插件化的通用视觉框架。该框架通过封装**Halcon算子**和设计**图像采集**统 阅读详情

相关推荐

史上功能最全的.Net缩略图水印组件(超级适用)

1.清晰文字边缘(文字水印); 2.图片旋转加水印; 3.水印位置旋转控制精准度; 4.原图自定义删除; 5.图像亮度、对比度、RGB颜色值的调整; 6.可获取生成后的图片路径; 7.图片无损生成; 8.水印文字阴影禁启用; 9.水印文字中文字竖形排列,增加文字纵横排列参数开关; 10.调用将灵活; 11.优化水印图片过滤背景色; 12.使用了一些函数接口。

c# .net core 生成缩略图(在linux运行)

c# .net core 生成缩略图(在linux运行)

czh4869623的专栏 966

正点原子lwIP实战指南——从FreeRTOS移植到网络应用开发

本文详细介绍了如何将轻量级TCP/IP协议栈lwIP移植到FreeRTOS实时操作系统上,并基于正点原子STM32开发板进行网络应用开发。内容涵盖从使用STM32CubeMX快速搭建工程、核心概念解析(RAW/NETCONN/Socket API),到关键的系统适配、驱动实现,并通过TCP Echo服务器和云台控制两个实战案例,手把手指导读者完成从移植到应用开发的全过程,帮助嵌入式开发者快速掌握lwIP在FreeRTOS环境下的稳定部署与开发技巧。

s4t5u6v的博客 1000

nuxt.js中使用vue-cropper实现图片裁剪

最近我司一项目,在个人中心页面上需用户上传个性传封面图(类似知乎个人主页上部),用户上传图片大小不一,且封面图大小为1000px*240px;这就需要在用户上传的时候对图片进行合适大小裁剪。 大概思路: 用户上传图片时 判断图片尺寸大小,宽高不能小于1200px240;小于这个尺寸将无法完美裁剪。 将图片转化为base64格式,即时回显图片和不浪费服务器资源。 这两步完成后,将进入到vue-c...

zhanghaoran 4815

Yolov5 多边形标签转换,所有json文件自动转成txt格式[详细过程]

注:labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。通过labelme对图进行标注后,得到的是json文件,而Yolov5对数据进行模型构建的时候,读取需要的是txt格式的文件。txt_outer_path——保存txt文本的文件夹的绝对路径。json_name——json_name是json文本的名字。json_floder——读取json的文件夹的绝对路径。

Pandas_007的博客 1万+

得物(毒)App潮鞋价格波动监控系统实战:从爬虫开发到数据可视化完整指南

本文将带领您从零开始构建一套完整的得物潮鞋价格监控系统,涵盖爬虫开发、数据存储、价格波动分析和可视化展示等全流程技术。我们将使用最新的Python技术栈,包括异步爬虫框架、智能代理池、反爬虫绕过技巧,以及基于机器学习的时间序列预测模型。无论您是想要追踪特定鞋款价格的潮流爱好者,还是希望构建商业级监控系统的开发者,这篇文章都将为您提供切实可行的解决方案。

2201_76125261的博客 2506

用C#轻松地在DOTNET中实现缩略图

以前,在页面上实现缩略图必须借助第三方组件。现在,有了.NET,就可以很轻松地实现缩略图。下面就是实现缩略图的例子。 关键字:C# ,ASP.NET,缩略图 实例下载:http://www.lionsky.net/MyWebSite/DownSoft/list.aspx?id=221 ToThumbnailImage.aspx       Lion互动网络 =>生成缩略图             

LionSky.Net 1981

MIKE水动力笔记8_冷启动与热启动

在【MIKE水动力笔记5_建立水动力模型】中,讲到【Step 2 设置模型参数】中的【Initial Conditions】时,提到了冷启动与热启动。本博文就详细讲解何为冷启动、热启动,并通过一个案例具体分析两者不同。...

晏长街的博客 6568

.NET图片压缩和生成缩略图

public class MakeThum { public MakeThum() { // //TODO: 在此处添加构造函数逻辑 // } /// <SUMMARY> /// 生成缩略图//带压缩图片不压缩22k压缩2k /// </SUMMARY> /// <PARAM name=...

chenjun0411的专栏 822

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 282

Unity小游戏接入抖音敏感词检测

摘要: 本文介绍了Unity小游戏接入抖音敏感词检测的方法。抖音官方提供了两种API:SensitiveWordCheck用于检测敏感词,ReplaceSensitiveWords用于替换敏感词。此外,若使用键盘输入事件,可通过tt.onKeyboardComplete监听回调,平台会自动屏蔽敏感词(替换为*)。接入官方字库可有效避免审核驳回,适用于小游戏中的用户输入功能(如起名系统)。附官方文档链接及参数说明。

类人_猿的博客 4594

解锁 PDF 操作的无限可能:深入掌握 iText7在 dotnet开发中的强大功能

在现代办公环境中,PDF(Portable Document Format)已成为一种标准的文档格式。无论是合同、报告、发票,还是技术文档,PDF 都因其跨平台的兼容性、固定的布局和安全性,广泛应用于各种场景。然而,随着 PDF 的广泛使用,如何在桌面软件中对 PDF 进行有效的创建、修改和管理,成为开发者面临的重要挑战。对桌面软件而言,能够灵活、高效地操作 PDF 文件至关重要。例如,企业需要自动化生成合规的报告,电子书出版商需要格式化和保护内容,法律领域则需要将多个文档合并成一个。

dotnet研习社 2895

手把手教你学Simulink--基于光伏(PV)系统的建模与仿真场景:-不同天气条件下光伏系统的输出性能分析

本文介绍了使用Simulink和Simscape Electrical工具箱进行光伏系统建模与仿真的完整流程。内容涵盖准备工作、模型构建、仿真分析三大步骤,重点演示了如何模拟不同天气条件(光照强度、温度变化)对光伏输出性能的影响。通过添加PVArray模块、配置参数、设置环境变化条件、连接测量仪器等操作,实现了光伏系统在动态天气条件下的输出特性分析。文章还提供了仿真参数设置建议和结果分析方法,帮助用户理解环境因素与光伏性能的关联性,为光伏系统设计和优化提供参考。

MHD0815的博客 189

SharpVectors完全指南:如何在C .NET中实现高效SVG渲染与转换

SharpVectors是一个强大的开源库,为C# .NET开发者提供了完整的SVG DOM实现和渲染功能。通过SharpVectors,开发者可以轻松地在.NET应用程序中处理、显示和转换SVG图像,实现高质量的矢量图形渲染。本文将详细介绍如何利用SharpVectors在C# .NET环境中实现高效的SVG渲染与转换,帮助新手和普通用户快速掌握这一工具的核心功能和使用方法。 ## 什么是Sh

gitblog_00502的博客 1099

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IT文档 13

浅谈位图的淡入淡出和渐隐浅谈足球游戏的人工智能浏览文件夹中的图片消息钩子函数入门篇消息队列在VB.NET数据库开发中的应用深入RPG游戏制作深入了解异步套接字深入浅出单元测试深入浅出屏幕保护程序编程深入理解C#编程中的组件-事件-委托深入研究Application和Session对象混合编程实现英文文章的语音输出清华大学matlab教程 第11章 积分和微分方程组清华大学matlab教程 附录A

iamhere1956的专栏 381

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

为Windows创建虚拟文件系统:WinFsp让一切数据都变成磁盘

你是否曾幻想过将数据库查询结果、内存数据甚至网络资源直接当作本地硬盘来使用?在Windows平台上,这个梦想现在可以轻松实现。WinFsp(Windows File System Proxy)是一个革命性的用户态文件系统开发框架,它让你能够用熟悉的编程语言为Windows创建自定义文件系统,无需深入内核编程的复杂世界。 想象一下:你的应用程序可以直接操作云端数据库中的BLOB数据,就像操作本地文

gitblog_00639的博客 420

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Parabolic视频下载工具:为什么它是跨平台下载的最佳选择?

在当今数字内容爆炸的时代,视频下载需求日益增长,但用户面临着诸多痛点:命令行工具操作复杂、图形界面功能有限、跨平台体验不一致、格式支持不够全面。Parabolic应运而生,作为一款基于yt-dlp引擎的开源跨平台视频下载工具,它完美解决了这些难题,支持超过200个主流视频网站,提供专业高效的一站式媒体下载解决方案。 --- ## 核心痛点与解决方案 ### 传统下载工具的局限性 大多数用户

gitblog_00081的博客 443
上一篇: Dreamweaver+vs.net2003+vss项目开发设置
下一篇: ASP.net生成文字图片
libiyang
博客等级 码龄25年 0粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值