求好的图片格式转换的代码

郭大侠_ 2006-09-13 11:55:59
现在的图片格式转换程序生成的PNG格式的图片总是达不到要求,要么图片文件太大,要么图片质量太差,但是我用AcdSee转换得到的图片却能两方面都能兼顾。
谁有这方面成熟的代码,共享一下好吗?
...全文
680 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
郭大侠_ 2006-09-15
  • 打赏
  • 举报
回复
谢谢各位了,我再想想办法,如果真的不行就算了。
Knight94 2006-09-14
  • 打赏
  • 举报
回复
通过查看acdsee,发现在做转换的时候有interlace作为转换参数,默认是不打勾的,转换的文件比较小;打上勾后和程序转换的是一样的。

尝试在保存的时候,增加encodeparameter来设置,但是无法成功,大致代码如下,你可以进行尝试:
ImageCodecInfo[] codes = ImageCodecInfo.GetImageEncoders();

EncoderParameters encParam = new EncoderParameters( 1 );
EncoderParameter interlace = new EncoderParameter(
System.Drawing.Imaging.Encoder.ScanMethod,
(byte)(EncoderValue.ScanMethodNonInterlaced) );
encParam.Param[0] = interlace;
Image img = Image.FromFile( @"D:\test.jpg" );
img.Save( @"D:\test.png", codes[4], encParam );
img.Dispose();
郭大侠_ 2006-09-13
  • 打赏
  • 举报
回复
我的意思是用jpg做一层倒手,你先把图片通过jpeg格式进行保存,设置图片质量,例如设置到60%左右,然后进行保存处理。
用处理后的jpeg文件在转换成png,由于前一部分处理降低图像数据,因此在转换的时候也会相应降低。

--------------------------------------
按你的意思测试过了,没有任何效果
Knight94 2006-09-13
  • 打赏
  • 举报
回复
我的意思是用jpg做一层倒手,你先把图片通过jpeg格式进行保存,设置图片质量,例如设置到60%左右,然后进行保存处理。
用处理后的jpeg文件在转换成png,由于前一部分处理降低图像数据,因此在转换的时候也会相应降低。
zzwu 2006-09-13
  • 打赏
  • 举报
回复
要自己研究各种不同类型的图像工作量很大,
可以利用Delphi来实现,有现成模块可用,无须研究具体格式,
当然,其他语言也有源码.
如果不需要编程,则可以用Photoshop,它能转换很多种图像格式.
郭大侠_ 2006-09-13
  • 打赏
  • 举报
回复
Unfortunately, specifying the quality parameter to the JPEG encoder is non-trivial, and non-obvious.
---------------------------------------------------
这一句是文章的作者说的

我试着给PNG的图片设置质量参数,都不起任何作用
郭大侠_ 2006-09-13
  • 打赏
  • 举报
回复
楼上说的没错,跟我研究完得出的结论差不多。
自己写太难了,我都没有图像处理的基础,你们知道能直接调用ACDSee的图片格式转换功能吗?
cancerser 2006-09-13
  • 打赏
  • 举报
回复
.net里转换是封装好的,png的大小似乎只和其内容的算法有关
要想要
1、改变压缩规则
2、减少颜色数量
这些在gdi+里是都没有的,只能自己写

至于Knight94(愚翁) 老大 所说的质量 似乎只对jpeg和bmp有效
还有几个tif的压缩算法和很不错

gif和png 我是没办法了
Knight94 2006-09-13
  • 打赏
  • 举报
回复
你在保存的时候,通过EncoderParameters参数来设置编码质量试试
http://www.codeproject.com/cs/media/bitmapmanip.asp
PyTorch版的YOLOv8是先进的高性能实时目标检测方法。 TensorRT是针对英伟达GPU的加速工具。ONNX (Open Neural Network Exchange) 作为一个开放的网络模型中间表示(IR)格式,提供了跨框架兼容性。可以方便不同的框架轻松地交换模型,有助于框架之间的互操作性。本课程讲述如何对YOLOv8目标检测的PyTorch权重文件转成ONNX格式并进行TensorRT加速部署。相比与直接使用TensorRT API构建推理引擎,本方法更具灵活性,可用于YOLOv8网络架构修改后的模型部署。课程内容包括:YOLOv8目标检测的PyTorch权重文件转成ONNX格式,再转成TensorRT 推理引擎支持在GPU上端到端TensorRT加速部署,包括预处理(图像resize, 归一化)、网络推理、后处理(非极大抑制) 均在GPU上执行支持FP16加速提供C++和Python的TensorRT加速命令接口分别在Windows和Ubuntu系统上做YOLOv8的ONNX转换及TensorRT部署演示支持图片图片文件夹、视频文件的TensorRT的加速推理提供YOLOv8的ONNX转换及TensorRT加速部署代码代码解析文档实测推理速度提高2倍以上。课程内容包括:原理篇(YOLOv8网络架构与组件、TensorRT基础、ONNX基础、CUDA编程方法)实践篇(Windows和Ubuntu系统上的ONNX模型转换及TensorRT加速部署流程演示)代码解析篇(YOLOv8的ONNX模型转换及TensorRT加速的代码解析) 

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧