从 System.Drawing.Image 在文件系统上创建新图像?

2023-12-15

好吧,我很抱歉,这可能是一个菜鸟问题,但我有点卡住了。

所以我正在做的(在我的 asp.net 应用程序上)是从文件系统加载图像:

System.Drawing.Image tempImage;
tempImage = System.Drawing.Image.FromFile(HttpContext.Server.MapPath(originalPath));

然后我做了一些调整大小:

tempImage = my awesomeResizingFunction(tempImage, newSize);

并打算使用以下命令将其保存到文件系统的另一个位置:

string newPath = "/myAwesomePath/newImageName.jpg";
tempImage.Save(newPath);

我得到的是这个错误:

"A generic error occurred in GDI+."

我知道图像是“ok”,因为我可以将其写入浏览器并查看调整后的图像,只有当我尝试保存它时才会收到错误。我有点新,被困住了,我这样做完全错了吗? (嗯,我想这很明显,但你知道我的意思......)


试试这个代码...我使用了相同的代码来调整图像大小并保存。

    System.Drawing.Bitmap bmpOut = new System.Drawing.Bitmap(NewWidth, NewHeight);
    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmpOut);
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
    g.FillRectangle(System.Drawing.Brushes.White, 0, 0, NewWidth, NewHeight);
    g.DrawImage(new System.Drawing.Bitmap(fupProduct.PostedFile.InputStream), 0, 0, NewWidth, NewHeight);
    MemoryStream stream = new MemoryStream();
    switch (fupProduct.FileName.Substring(fupProduct.FileName.IndexOf('.') + 1).ToLower())
    {
        case "jpg":
            bmpOut.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
            break;
        case "jpeg":
            bmpOut.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
            break;
        case "tiff":
            bmpOut.Save(stream, System.Drawing.Imaging.ImageFormat.Tiff);
            break;
        case "png":
            bmpOut.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
            break;
        case "gif":
            bmpOut.Save(stream, System.Drawing.Imaging.ImageFormat.Gif);
            break;
    }
    String saveImagePath = Server.MapPath("../") + "Images/Thumbnail/" + fupProduct.FileName.Substring(fupProduct.FileName.IndexOf('.'));
    bmpOut.Save(saveImagePath);

where fupProduct是文件上传控件ID

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

从 System.Drawing.Image 在文件系统上创建新图像? 的相关文章

  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 不可勾选的单选按钮与专有的复选框

    从 UI 角度来看 是拥有一组具有取消选中功能的单选按钮更好 还是拥有一组独占的复选框 意味着一次只能选中一个 更好 Update 我没想到对此会有如此负面的反应 如果我给出一个更接近其使用方式的示例 也许会有所帮助 我有一个充满数据绑定内
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 服务器不支持 C# 中的安全连接

    我在下面的代码中收到错误 服务器不支持安全连接 SmtpClient smtp new SmtpClient MailMessage mail new MailMessage mail From new MailAddress gmail
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 使用量词进行前瞻有什么作用?

    只是想把我的注意力集中在这个问题上 当我在积极的前瞻中胡思乱想时 我就想到了这个问题 这个正则表达式有意义吗 foo bar re match 不会返回错误 但如果有任何意义 量词 我不知道它会是什么 FWIW regex101 com 给
  • PATH 应该包含目录或二进制文件的完整路径吗?

    我正在尝试设置一个正确的PATH 但我想知道它应该包含什么 如果我有 usr bin ls usr local bin ls 我想要更喜欢其中的一个 usr local bin 我应该使用以下哪一个 PATH usr local bin l
  • tvOS:焦点移动不正确

    我有一个 UIView 上面有两个按钮 在里面MyView类我有这个代码 BOOL canBecomeFocused return YES NSArray
  • 从其他窗口刷新组合框列表,MVVM

    我正在开发一些应用程序 但遇到一个问题 我有两个窗口 预订 父母和客人 儿童 在父窗口中 我有一个包含客人列表的组合框和一个用于添加新客人的按钮 当我单击该按钮时 客人 窗口 子窗口 打开 在子窗口中 我将新来宾添加到数据库中 效果很好 我
  • DO 脚本中的 PSQL 命令行参数

    我有一个脚本NewSchemaSafe sql根据项目目录创建一个新模式 它是从 Windows 命令行调用的 如下所示 for a in do set this na other stuff here psql U postgres d
  • R - 在每个数据帧行上应用 lm

    我正在尝试在数据框的两列之间对每一行应用简单的线性回归 经过一番研究 我觉得我已经差不多了 但我的功能仍然不起作用 请看一下 set seed 1 DF lt data frame A rnorm 50 100 3 B rnorm 50 1
  • 仅在运行测试时出现 DexIndexOverflowException

    我可以在调试和发布变体中成功构建并运行我的 Android 应用程序 没有任何问题 然而 当我尝试运行新的单元测试 我以前从未进行过 时 我得到了可怕的结果DexIndexOverflowException 我猜测ProGuard没有与我的
  • 如何将这个elasticsearch函数分数查询转换为java API

    如何将下面的ES查询转换为Java API 我正在使用弹性搜索2 3 3 GET schema name search from 0 size 200 query function score query match all boost 5
  • 如何使用 boost::property_tree 解析带有数组根的 JSON

    如何使用 Boost PropertyTree 从以数组为根节点的 JSON 中获取数据 ID cc7c3e83 9b94 4fb2 aaa3 9da458c976f7 Type VM 数组元素只是属性树中带有名为 的键的值 for aut
  • 在Java中显示数字的前n位

    当用户确定 n 时 我很难创建一种显示数字前 n 位的方法 例如 用户输入整数 1234567 和若干位数以显示 3 然后该方法输出 123 我有一个想法如何显示第一个数字 long number 52345678 long prefix
  • C# - 使用 webbrowser 控件将字符串传递到网页中的文本框

    有没有办法在使用网络浏览器控件时获取字符串的值并将其传递到网页内的文本框 HtmlDocument doc this webBrowser1 Document doc GetElementById myId SetAttribute Val
  • ImageIO.read 返回 NULL,没有错误

    尽管文件看起来很好找到 但以下代码似乎不起作用 images new BufferedImage 32 FileInputStream fis null for int i 0 i lt 32 i File file new File ti
  • Rscript 在本地构建中指向不正确的 R 版本

    我最近在Linux Redhat服务器上安装了本地版本的R 3 1 0 如下 from R 3 1 0 directory configure prefix pwd make make install 此外 我还更新了 bashrc 中的
  • 简单的喜欢/不喜欢文本按钮 - 添加 ajax 等

    我正在尝试用 PHP 制作一个非常简单的 Like Unlike 按钮 页面不刷新 我知道有无数关于这方面的教程 但因为我对 ajax 和 jquery 完全陌生 所以我不知道如何实现它们 代码的哪一部分在哪个文件中执行等 我有一个用户 I
  • 正则表达式防止尾随空格和额外空格

    现在我有一个正则表达式可以防止用户输入任何特殊字符 唯一允许的字符是 A 到 Z 0 到 9 或空格 我想改进这个正则表达式以防止出现以下情况 无前导 训练空格 如果用户在条目之前或之后键入一个或多个空格 则不允许 不允许使用双空格 如果用
  • 将 Yaml 中的列表映射到 Spring Boot 中的对象列表

    在我的 Spring Boot 应用程序中 我有 application yaml 配置文件 其中包含以下内容 我想将其作为带有通道配置列表的配置对象注入 available payment channels list xyz 123 ch
  • 在 Xdebug v3 中,如果我在单步调试时更改断点,我会得到 nginx 502 Bad Gateway

    我在 Docker 中运行 PHP 7 4 我能够很好地进行单步调试 但是 与 Xdebug v2 不同 如果我在单步调试时添加断点或删除断点 我会从 nginx 收到 502 Bad Gateway 消息 并且单步调试会话就会终止 我是否
  • 给定一组区间,找出有多少个区间包含一个点

    假设给你一组 N 个区间 表示为左右坐标 和 M 个点 对于每个点 P 算法应该找到 P 所属的区间数 这是我的算法 1 将区间的左 右坐标分别放入 left 和 right 数组中 2 左 排序 与 右 同时交换条目 3 给定一个点 P
  • OpenJDK 和 Adoptium/AdoptOpenJDK 之间的区别

    由于最近Oracle Java SE 支持路线图由于政策更新 特别是 2019 年 3 月之后 Oracle 的 free 版本更新结束 我一直在寻找 Oracle Java 的替代方案 我发现 OpenJDK 是一个开源替代品 我发现采用
  • 从 System.Drawing.Image 在文件系统上创建新图像?

    好吧 我很抱歉 这可能是一个菜鸟问题 但我有点卡住了 所以我正在做的 在我的 asp net 应用程序上 是从文件系统加载图像 System Drawing Image tempImage tempImage System Drawing