当前位置: 首页 > news >正文

旅游电子商务与网站建设无锡微网站制作

旅游电子商务与网站建设,无锡微网站制作,江苏网站建设推广,网站模板抄袭项目升级.Net7.0以后#xff0c;System.Drawing.Common开关已经被删除#xff0c;且System.Drawing.Common仅在 Windows 上支持 #xff0c;于是想办法将原来上传图片验证文件名和获取图片扩展名方法替换一下#xff0c;便开始搜索相关解决方案。 .Net6.0文档#xff1a;…项目升级.Net7.0以后System.Drawing.Common开关已经被删除且System.Drawing.Common仅在 Windows 上支持 于是想办法将原来上传图片验证文件名和获取图片扩展名方法替换一下便开始搜索相关解决方案。 .Net6.0文档中断性变更仅在 Windows 上支持 System.Drawing.Common - .NET | Microsoft Learn .Net7.0文档中断性变更删除了 System.Drawing.Common 配置开关 - .NET | Microsoft Learn  旧行为 在 .NET 6 之前使用 System.Drawing.Common 包不会产生任何编译时警告也不会引发任何运行时异常。 新行为 从 .NET 6 开始当为非 Windows 操作系统编译引用代码时平台分析器会发出编译时警告。 此外除非设置了配置选项否则将引发以下运行时异常 System.TypeInitializationException : The type initializer for Gdip threw an exception.---- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms. See https://aka.ms/systemdrawingnonwindows for more information.Stack Trace:at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr bitmap)/_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(42,0): at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm)/_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(25,0): at System.Drawing.Bitmap..ctor(String filename)/_/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs(270,0): at System.Resources.Tests.ResourceManagerTests.EnglishImageResourceData()MoveNext()/_/src/libraries/System.Linq/src/System/Linq/Select.cs(136,0): at System.Linq.Enumerable.SelectEnumerableIterator2.MoveNext()----- Inner Stack Trace -----/_/src/libraries/System.Drawing.Common/src/System/Drawing/LibraryResolver.cs(31,0): at System.Drawing.LibraryResolver.EnsureRegistered()/_/src/libraries/System.Drawing.Common/src/System/Drawing/GdiplusNative.Unix.cs(65,0): at System.Drawing.SafeNativeMethods.Gdip.PlatformInitialize()/_/src/libraries/System.Drawing.Common/src/System/Drawing/Gdiplus.cs(27,0): at System.Drawing.SafeNativeMethods.Gdip..cctor() 可通过将 runtimeconfig.json 文件中的 System.Drawing.EnableUnixSupport运行时配置开关设置为 true 来启用对 .NET 6 中非 Windows 平台的支持。 runtimeconfig.template.json 模板文件 {    configProperties: {       System.Drawing.EnableUnixSupport: true    } } [appname].runtimeconfig.json 输出文件 {    runtimeOptions: {       configProperties: {          System.Drawing.EnableUnixSupport: true       }    } } 上面描述.Net6.0之前还是可以使用System.Drawing.Common.Net6.0需要设置开关而.Net7.0中直接将开关删除由于项目中上传文件验证文件格式等操作于是便搜索相关替代方案。 在github中发现一个开源项目https://github.com/iron-software/IronSoftware.System.Drawing 将项目中代码替换为IronSoftware.System.Drawing类库本文使用的版本为 保存图片 /// summary /// 字节数组转换成图片 /// hef 2023.03.10 13:53 将原System.Drawing替换为IronSoftware.Drawing /// /summary /// param namebuffer/param /// param namesImgSavePath/param /// returns/returns static public string ByteToImg(byte[] buffer, string sImgSavePath) {AnyBitmap img AnyBitmap.FromBytes(buffer);img.SaveAs(sImgSavePath);return sImgSavePath; } 获取图片扩展名 /// summary /// 获取图片后缀 /// hef 2023.03.10 13:54 将原System.Drawing替换为IronSoftware.Drawing /// /summary /// param nameimage/param /// returns/returns static public string GetImageExt(AnyBitmap image) {string imageExt ;var RawFormat image.GetImageFormat();if (RawFormat AnyBitmap.ImageFormat.Png){imageExt .png;}if (RawFormat AnyBitmap.ImageFormat.Jpeg){imageExt .jpg;}if (RawFormat AnyBitmap.ImageFormat.Bmp){imageExt .bmp;}if (RawFormat AnyBitmap.ImageFormat.Gif){imageExt .gif;}if (RawFormat AnyBitmap.ImageFormat.Icon){imageExt .icon;}if (RawFormat AnyBitmap.ImageFormat.Wbmp){imageExt .bmp;}if (RawFormat AnyBitmap.ImageFormat.Webp){imageExt .png;}return imageExt; } 你可以直接获取扩展名 string sExtName Enum.GetName(typeof(AnyBitmap.ImageFormat), AnyBitmap.ImageFormat.Gif); 使用上面一行代码得到的值为gif并不包含.[点]。 使用封装的方法如下列举两种常用方法你也可以使用其它方法 1.通过字节数组转换为AnyBitmap var vAnyBitmap FileHelper.ByteToImg(bytes);2.通过Stream转换为AnyBitmap var vAnyBitmap IronSoftware.Drawing.AnyBitmap.FromStream(fileStream);string sImgExt FileHelper.GetImageExt(vAnyBitmap); 其它示例 Bitmap to Stream using IronSoftware.Drawing; using System.IO;AnyBitmap bitmap AnyBitmap.FromFile(FILE_PATH);// Get stream of AnyBitmap MemoryStream stream bitmap.GetStream();// Convert AnyBitmap to stream MemoryStream stream1 bitmap.ToStream(); Bitmap to String using IronSoftware.Drawing;AnyBitmap bitmap AnyBitmap.FromFile(FILE_PATH);// Convert AnyBitmap to a string that represents the object string bitmapString bitmap.ToString(); Cast to AnyBitmap using IronSoftware.Drawing; using System.IO;// We create an AnyBitmap object. We will then cast other popular types to Anybitmap. AnyBitmap anyBitmap;// Cast System.Drawing bitmap to AnyBitmap System.Drawing.Bitmap bitmapFromBitmap new System.Drawing.Bitmap(FILE_PATH); anyBitmap bitmapFromBitmap;// Cast System image to AnyBitmap System.Drawing.Image bitmapFromFile System.Drawing.Image.FromFile(FILE_PATH); anyBitmap bitmapFromFile;// Cast SKBitmap to AnyBitmap SkiaSharp.SKBitmap skiaBitmap SkiaSharp.SKBitmap.Decode(FILE_PATH); anyBitmap skiaBitmap;// Cast SKimage to AnyBitmap SkiaSharp.SKImage skiaImage SkiaSharp.SKImage.FromBitmap(SkiaSharp.SKBitmap.Decode(FILE_PATH)); anyBitmap skiaImage;// Cast SixLabors Image to AnyBitmap SixLabors.ImageSharp.ImageSixLabors.ImageSharp.PixelFormats.Rgba32 imgSharp SixLabors.ImageSharp.Image.LoadSixLabors.ImageSharp.PixelFormats.Rgba32(FILE_PATH); anyBitmap imgSharp;// Cast Maui image to AnyBitmap (not for NET 4.7.2): byte[] imageAsBytes File.ReadAllBytes(FILE_PATH); // var mauiPlatformImage Microsoft.Maui.Graphics.Platform.PlatformImage.FromStream(new MemoryStream(imageAsBytes)); Clone AnyBitmap using IronSoftware.Drawing;// Clone an AnyBitmap AnyBitmap clonedframe AnyBitmap.FromFile(FILE_PATH).Clone(); clonedframe.SaveAs(frameClone.jpg);// Clone frames of any image with a specified crop area AnyBitmap clonedWithCrop AnyBitmap.FromFile(FILE_PATH).Clone(new Rectangle(0, 0, 150, 150)); clonedWithCrop.SaveAs(cropCloned.jpg); Create Multipage TIFF and GIF using IronSoftware.Drawing; using System.Collections.Generic;// Create a multipage Tiff with frames of different dimensions ListAnyBitmap tiffBitmaps new ListAnyBitmap() {AnyBitmap.FromFile(cropframe1.jpg),AnyBitmap.FromFile(frame2.jpg),AnyBitmap.FromFile(cropframe3.jpg) }; AnyBitmap multiFrameTiff AnyBitmap.CreateMultiFrameTiff(tiffBitmaps); multiFrameTiff.SaveAs(multiTiffwcrops.tiff);// Create a multipage Gif with frames of different dimensions ListAnyBitmap gifBitmaps new ListAnyBitmap() {AnyBitmap.FromFile(frame1.jpg),AnyBitmap.FromFile(frame2.jpg),AnyBitmap.FromFile(frame3.jpg),AnyBitmap.FromFile(cropframe4.jpg) }; AnyBitmap multiFrameGif AnyBitmap.CreateMultiFrameGif(gifBitmaps); multiFrameGif.SaveAs(multiGif.gif); Export AnyBitmap using IronSoftware.Drawing;//Export AnyBitmap files to other formats with ability to control loss AnyBitmap bitmap new AnyBitmap(FILE_PATH); bitmap.ExportFile(losslogo.png, AnyBitmap.ImageFormat.Png, 100); Generate AnyBitmap using IronSoftware.Drawing; using System; using System.IO;AnyBitmap bitmap;// Generate AnyBitmap using filepath bitmap AnyBitmap.FromFile(FILE_PATH); bitmap.SaveAs(output.bmp);// Generate AnyBitmap from bytes byte[] bytes File.ReadAllBytes(FILE_PATH); bitmap AnyBitmap.FromBytes(bytes); bitmap.SaveAs(result.bmp);// Generate AnyBitmap from memory stream byte[] bytes2 File.ReadAllBytes(FILE_PATH); MemoryStream ms new MemoryStream(bytes2); bitmap AnyBitmap.FromStream(ms); bitmap.SaveAs(output.bmp);// Generate AnyBitmap from Uri Uri uri new Uri(URI_PATH); bitmap await AnyBitmap.FromUriAsync(uri); bitmap.SaveAs(uriImage.bmp);// Generate AnyBitmap file from SVG file bitmap AnyBitmap.FromFile(FILE_PATH.svg); bitmap.SaveAs(result.jpg); 以上示例代码可能与本人使用的版本有不同可以更新至新版本希望本文对你有帮助。
http://www.zqtcl.cn/news/855921/

相关文章:

  • 网络营销创意案例桂林seo公司推荐23火星
  • 网站开发知识产权归属问题wordpress会计模板下载
  • 昆明网站的优化自媒体是干什么的
  • 大成建设株式会社网站删掉wordpress主题
  • 个人网站备案类型网络维护培训班
  • 做网站的可以注册个工作室吗一个网站两个域名吗
  • 网站建设要准备什么资料网站建设 锐颖科技
  • 如何建设网站山东济南兴田德润官网电子商城官网
  • 网站如何做支付宝接口免费ppt自动生成器
  • 泰安市建设职工培训中心网站官网seo经理招聘
  • 湛江做网站seo网站建设 0551
  • 建站公司 深圳苏州建站公司
  • 网站怎么做引流呢济南网站微信
  • 一个域名可以做几个网站吗wordpress左右翻转页面
  • 天津人工智能建站系统软件wordpress主题没有小工具
  • 网站的备案流程图视频制作素材
  • 劳务公司网站建设方案建设促销网站前的市场分析
  • 网络营销优化培训网站seo置顶 乐云践新专家
  • 小说网站搭建教程wordpress后台图片
  • 付网站开发费计入什么科目网站开发的历史
  • 站长素材ppt模板免费下载网站开发视频教程迅雷下载
  • 建设一个网站怎么赚钱南京江北新区房价走势最新消息
  • 一个网站怎么做软件下载互联网投放渠道有哪些
  • 手机网站建设进度环境设计排版素材网站
  • 网站开发众筹地推网推平台
  • 长沙互联网网站建设wordpress标签id在哪里修改
  • 企业网站的建设 摘要大连网站设计策划
  • 做房地产一级市场的看什么网站网络营销外包推广方式
  • 网站建设基本流程包括哪几个步骤网站建设策划书网站发布与推广
  • 徐州整站优化手机网页端