如何提高JPEG编码器的分辨率

3
我试图使用JPEG编码器增强输出的JPEG图片。通过阅读stackoverflow上的这篇文章: BitmapData和JpegEncoder的限制 因此,存在一些限制。 我附上了JPEG输出。output JPEG Picture

这是最高分辨率的图片,但仍然不够好。如何提高图片质量?


我不理解你的问题。问题具体是什么? - Jonatan Hedborg
我想以更高质量的图像呈现图像。@Jonatan Hedborg - woninana
1
因此将其渲染成更高分辨率的图像。还是说线条有问题?JPEG格式总是难以显示1像素线条-尝试将其保存为PNG格式,或使线条变粗。 - Jonatan Hedborg
使用PNG代替JPEG怎么样?也有一个叫做PNGEncoder的工具。 - Lars Blåsjö
哦,我现在明白了,乔纳森已经建议使用PNG格式了。很抱歉在没有仔细阅读之前就发帖了。 - Lars Blåsjö
5个回答

0

你可以使用this JPEG编码库。它更快,没有限制。而且你也没有提到如何拉伸你的初始对象以及如何保存它。

但我99%确定这个库会帮助你。


0

当说“更高质量”时,您是指更好的矢量渲染吗?压缩时减少退化?还是更多像素?

更好的渲染:据我所知,您没有得到任何东西。

在压缩时减少退化 -> 将JPEGEncoder质量参数设置为更高的值(100),或制作png(PNGEncoder)。

更多像素:使BitmapData更大。如果您要将某个对象绘制到BitmapData中,则可以扩大该对象。或使用带有绘图方法的Matrix来缩放结果。

如果您可以发布更多代码或项目源链接,那将非常有帮助...

编辑:

我看到可能会给您带来问题的另一件事是,如果您尝试绘制一个缩小的位图,并将其smoothing属性设置为false。请注意,每次将新值设置为BitmapbitmapData属性时,smoothing都会被重置为false


0

我的问题是:你是遇到了JPEG标准的理论限制,还是只是使用了劣质的编码器?如果不确定,可以在Photoshop中使用最高质量设置压缩相同的图像,看看是否有所改善。

如果是情况1:在压缩之前可以稍微模糊一下图像,这样可以减少伪影,但当然会牺牲清晰度。

如果是情况2:显然要使用更好的编码器!


0
你尝试过 imagemagick 吗? 你可以更改它的分辨率和转换格式。它还有命令行工具。

0

你可以尝试使用使用VRay或Mental Ray渲染高分辨率图像

最终产品是一个以JPEG格式光栅化的全景图像,客户可以使用一个名为“iMove Viewer”的免费软件查看和浏览。

所使用的脚本如下:

(

            Global AutosaveImg          

            fn dntTick =

            (

                        Local Autosavedir = (getdir #autoback) + "\\" + "Rend_autosave.tif"

                        TIF.setType #color16

                        TIF.setAlpha #true

                        ::AutosaveImg = getLastRenderedImage copy:off

                        AutosaveImg.gamma = 2.2

                        AutosaveImg.filename = Autosavedir

                        Save AutosaveImg

            )

            Global dnetTimer = dotnetobject "system.timers.timer" (2*60*1000)

            dotnet.addEventHandler dnetTimer "Elapsed" dntTick

            callbacks.removeScripts id:#RenderAutoSave

            callbacks.addScript #preRender "dnetTimer.start()" id:#RenderAutoSave

            callbacks.addScript #postRender "dnetTimer.stop()" id:#RenderAutoSave

)

要保存此脚本,只需打开3ds Max,然后从主工具栏单击MAXScript按钮,并从下拉列表中选择MAXScript编辑器选项。

enter image description here

对话框应该打开。然后将上述脚本复制并粘贴到对话框的文本字段中。

默认情况下,该脚本会自动使用(getdir#autoback)代码字符串查找自动保存路径,并将文件另存为名为 "Rend_autosave.tif" 的 TIF 文件格式。

enter image description here

这可以手动更改。例如,默认路径可以保存在以下位置:C:\Users\Public\Pictures

相关的代码行将被替换为以下内容:“Local Autosavedir = C:\Users\Public\Pictures + "Rend_autosave.tif"。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接