.NET位图类无法打开LinkedIn个人资料图像-关于如何打开的任何建议
本文关键字:于如何 任何建 图像 LinkedIn 位图 NET 个人资料 | 更新日期: 2023-09-27 18:20:00
我正在尝试将LinkedIn个人资料映像下载到.NET应用程序中。应用程序尝试打开图像,然后调整大小、裁剪图像,然后将其重新保存为PNG图像格式。应用程序将图像加载到流中。然后它尝试从流中实例化一个.NET位图类型。位图类型无法实例化,在实例化过程中总会返回"Parameter is not valid"错误。
似乎所有的LinkedIn个人资料图片都无法通过本机.NET Bitmap()API打开。即,我的个人资料图片是https://media.licdn.com/mpr/mpr/wc_200_200/p/4/005/024/13e/11d2b5e.jpg.不过,其他网站的图片也可以打开。看起来.NET图形API可能不支持LinkedIn jpeg格式的个人资料图像。事实上,在本地保存jpg并尝试使用Windows本机应用程序打开它也会失败。
如何打开和编辑这些图像,调整大小或裁剪等。?
错误堆栈跟踪如下:
[ArgumentException:参数无效。]System.Drawing.Bitmap.ctor(流)+411353
这是一个WebP图像。使用ImageMagick的identify
实用程序,我得到:
11d2b5e.jpg WEBP 200x200 200x200+0+0 8位sRGB 4.44KB 0.000u 0:00.00
你必须使用图书馆才能阅读这张图片。这是一个。
顺便说一句,你不喜欢GDI+错误消息吗?这是一个弹出的。。。好吧,几乎所有你能想象到的错误。
为了补充Ed S.的建议和分析,我在https://developers.google.com/speed/webp/?csw=1.谷歌提供了一个官方的Windows WebP编解码器,可在https://developers.google.com/speed/webp/download.谷歌的下载页面还提供了一个WebP到PNG的转换器,作为Windows命令行实用程序。因此,PInvoke是可能的,可能作为预打包.NET库的B计划替代方案。
下载Google WebP编解码器后,所有本机Windows图形应用程序,如Windows照片查看器和Windows资源管理器外壳,都可以打开和渲染WebP格式的图像。然而,该编解码器本身并没有集成到.NET位图API中,因此像Ed S.的建议或通过PInvoke的Google WebP解码器命令行实用程序这样的第三方库将起到作用。
我以为领英提供的是.jpg文件,因为个人资料图像的扩展名是.jpg。在尝试处理.jpg时,我不一定知道真正的文件类型。我想我阻力最小的开发路径是首先使用本机.NET Bitmap API,如果失败,请尝试其他图像库,如用于.NET的WebP。我想有更强大的解决方案来解决这个问题。