从 C# 中的内存流保存为 jpeg

2023-12-03

我有一个如下所示的方法将图像保存为 jpeg。 我想以相同的高度和宽度保存所有图片而不变形。

我怎样才能做到这一点? 请帮忙

public void SaveFileOnDisk(MemoryStream ms, string FileName)
{
    try
    {
        string appPath = HttpContext.Current.Request.ApplicationPath;
        string physicalPath = HttpContext.Current.Request.MapPath(appPath);
        string strpath = physicalPath + "\\Images";
        string WorkingDirectory = strpath;


        System.Drawing.Image imgSave = System.Drawing.Image.FromStream(ms);
        Bitmap bmSave = new Bitmap(imgSave);
        Bitmap bmTemp = new Bitmap(bmSave);

        Graphics grSave = Graphics.FromImage(bmTemp);
        grSave.DrawImage(imgSave, 0, 0, imgSave.Width, imgSave.Height);

        bmTemp.Save(WorkingDirectory + "\\" + FileName + ".jpg");


        imgSave.Dispose();
        bmSave.Dispose();
        bmTemp.Dispose();
        grSave.Dispose();
    }
    catch (Exception ex)
    {
        //lblMsg.Text = "Please try again later.";
    }

}

调整图像大小并保存

Private void ResizeImage(Image img, double maxWidth, double maxHeight)
{
    double srcWidth = img.Source.Width;
    double srcHeight = img.Source.Height;

    double resizeWidth = srcWidth;
    double resizeHeight = srcHeight;

    double aspect = resizeWidth / resizeHeight;

    if (resizeWidth > maxWidth)
    {
        resizeWidth = maxWidth;
        resizeHeight = resizeWidth / aspect;
    }
    if (resizeHeight > maxHeight)
    {
        aspect = resizeWidth / resizeHeight;
        resizeHeight = maxHeight;
        resizeWidth = resizeHeight * aspect;
    }

    img.Width = resizeWidth;
    img.Height = resizeHeight;
}

您可以在保存之前使用此代码将图像大小调整为所需的尺寸

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C# 中的内存流保存为 jpeg 的相关文章

  • 将 new 与 decltype 一起使用

    T t T is an implementation detail t new T want to avoid naming T to allow for flexibility t new decltype t error cannot
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • 如何使用 SOAP 且不使用 WSE 在 .NET 中签署 Amazon Web 服务请求

    亚马逊产品广告 API 以前称为 Amazon Associates Web Service 或 Amazon AWS 实施了一项新规则 即自 2009 年 8 月 15 日起 向其发送的所有 Web 服务请求都必须经过签名 他们在其网站上
  • 检测到堆栈崩溃

    我正在执行我的 a out 文件 执行后 程序运行一段时间 然后退出并显示消息 stack smashing detected a out terminated Backtrace lib tls i686 cmov libc so 6 f
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐

  • 如何使用 adb shell 打开 Android 设备扬声器

    没有看到任何关于使用 adb shell 打开 Android 设备扬声器的命令 好奇是否有办法 call phone adb shell am start a android intent action CALL d tel X XXX
  • 如何使用 solana rust 合约发送 SOL

    我是一名 Rust Solana 开发新手 感觉我遇到的问题对大多数其他新手都有帮助 我想知道如何在指令期间将 SOL 从帐户转移到程序 然后能够将 SOL 发送回调用该指令的帐户 我读了https docs solana com 但我找不
  • 为什么调用 main 函数被认为是未定义的行为 (UB)

    我担心这又是一个关于解释 ISO IEC 14882 C 标准 的问题 但是 正在呼叫main从程序中 例如我的使命main 递归地从main至少不是实现定义的行为 更新 我的意思是稍后格式不正确 未定义实现 也不是 UB 请参见下文并回答
  • 无法查看 Azure 日志流中的日志

    在我的 Web Api 应用程序中 我有控制器 Route api controller public class ValuesController Controller GET api values HttpGet public IEnu
  • GtkDrawingArea - 如何使其可绘制?

    我有点失去理智了 我正在尝试使用 cairo 在 GTK 表单上绘制一些简单的图形 include
  • 晾干石头剪刀布

    我是一个新手 ruby 程序员 虽然这段代码可以工作 但我想知道如何改进它 我对 lambda 和 procs 等的了解非常有限 但任何建议都会很棒 有什么办法可以简化if else每种情况下的陈述 另外 有没有什么替代方法case语句被跳
  • 如何在javascript中设置JSTL变量值?

    如何在javascript中设置JSTL变量值 我如何设置 user 多变的 JSTL 来自 的值val1 JavaScript 这是不可能的 因为它们在不同的环境中执行 JSP 在服务器端 JavaScript 在客户端 因此它们不会按照
  • 在 save_post 上设置产品重量的挂钩

    有没有办法设置产品重量save post hook 我有以下代码 但我不知道如何覆盖重量 add action save post change weight function change weight post id WC Produc
  • 为 Neo4j 的 CQL 创建 NOT MATCH 命令?

    我有一个非唯一节点 Neighborhood 它唯一地出现在 IN 一个 City 节点 我想创建一个新的邻里节点 并仅当该邻里节点不存在于该城市时才建立其关系 可以有多个具有相同名称的社区 但每个社区必须在房产城市中唯一出现 遵循吉尔在这
  • 回归基础:Apache Camel 路由和直接组件

    我对骆驼路线及其两个端点有点困惑 Direct 和 Seda 好吧 假设我有一条这样的路线 public void configure from direct services process Some processing here to
  • 如何防止 Prolog 在不该回溯的地方回溯

    我正在尝试解决一个 CSP 我需要向调酒师分发鸡尾酒 以便每个调酒师最多拥有一份鸡尾酒 并且所有鸡尾酒都由调酒师提供 我通过创建 clpfd 变量列表来解决这个问题 首先为他们提供所有调酒师的完整域 然后删除所有不知道如何制作鸡尾酒的调酒师
  • KStream 和 KTable 之间的时间语义

    我正在尝试构建以下拓扑 使用 Debezium 连接器 我拉出 2 个表 我们称它们为表 A 和 DA 根据 DBZ 存储表行的主题具有结构 before after 我的拓扑中的第一步是根据这两个 表 主题创建 干净 的 KStream
  • 如何使用Advanced Drive服务上传文件

    我有以下 Google Apps 脚本 它从上传表单中获取文件并将其自动存储在我的 Google 云端硬盘中 下面的代码片段中包含完整代码 问题出在这一部分 var file folder createFile blob Get root
  • Twitter4J:获取 Twitter 帐户的所有状态

    我正在为我的应用程序使用 Twitter4J API 我想获取我的 Twitter 帐户上的所有状态 或者如果不是全部 也可以是大部分状态 这可能吗 目前我正在使用 getUserTimeline 但这只检索最后 20 非常感谢和问候 Kr
  • 我需要我的脚本在 -Whatif 输出中包含“LastWriteTime”属性

    我需要编辑在这里找到的脚本 以便我可以首先看到它将删除的文件的报告 包括文件名和路径以及 LastWriteTime 属性 以便我可以分析脚本的输出执行前几个月以及将其配置为计划任务之前 我已经尝试使用 LastWriteTime 对象属性
  • 缩放后获取 SVG 坐标中的鼠标位置

    使用 D3 v4 SVG 和缩放行为 在 mousemove 上 我想在 SVG 坐标系中显示鼠标坐标 mousemove 事件似乎仅提供客户端 屏幕坐标 如何将这些坐标转换为反映当前缩放 平移 等变换的 SVG 坐标 我可以看到使用 ax
  • 错误:绑定变量的数量与标记的数量不匹配

    我只想在数据库 mySQL 中没有对应关系的情况下进行插入 但他让我没有声明 这是片段 if sql gt rowCount gt 0 echo Non inserisci else echo Inserisci db gt beginTr
  • 带 @Value 的 Spring 表达式语言 (SpEL):美元与哈希($ 与 #)

    我对何时使用有点困惑 相比 Spring的文档仅使用 但是有很多使用的例子 此外 当我开始使用 SpEL 时 我被告知要使用 而且效果很好 对于那些感到困惑的人 我如何使用它的一个例子是 Component public class Pro
  • 从服务交互启动 .Net winforms 应用程序

    环境 VS2008 Vista SP1 我编写了一个进程管理服务 它可以在会话 0 或交互式控制台 通常是 1 中启动应用程序 请注意 这不是正常的操作模式 仅用于内部调试目的 在现场 这些进程将安全地隐藏在会话 0 中 安全问题不适用 显
  • 从 C# 中的内存流保存为 jpeg

    我有一个如下所示的方法将图像保存为 jpeg 我想以相同的高度和宽度保存所有图片而不变形 我怎样才能做到这一点 请帮忙 public void SaveFileOnDisk MemoryStream ms string FileName t