我正在尝试使用JPEG编码器增强输出JPEG图片。 通过在stackoverflow上阅读这篇文章: BitmapData and JpegEncoder Limitations 因此,存在一些局限性。 我附加了JPEG输出。
这是最高的渲染图像。这还不够。如何提高图像质量?
答案 0 :(得分:0)
您可以使用this JPEGencoding lib代替。它更快,没有限制。而且您没有说明如何拉伸初始对象以及如何保存它。 但我99%肯定这个lib会帮助你
答案 1 :(得分:0)
当说“更高质量”时,你的意思是更好的矢量渲染吗?压缩时变质少?或更多像素?
更好的渲染:据我所知,你没有得到任何东西。
压缩时的劣化程度降低 - >将JPEGEncoder质量参数设置为更高的值(100)或制作png(PNGEncoder)。
更多像素:让BitmapData
更大。如果要将某个对象绘制到BitmapData
,则可以扩展所述对象。矿石使用Matrix
和draw方法来缩放结果。
如果您要发布更多代码,或者可能是指向项目源的链接,那将会很有帮助......
我看到的其他可能会导致问题的是,如果您尝试绘制缩小的位图,请将smoothing
属性设置为false
。请注意,每次为bitmapData
的{{1}}属性设置新值时,Bitmap
都会重新设置为smoothing
答案 2 :(得分:0)
我的问题是:你是否1.遇到jpeg标准的理论限制或2.你只是使用一个糟糕的编码器?如果您不确定,请在最高质量设置的Photoshop中压缩相同的图像,看看它是否更好。
如果是1:你可以在压缩之前略微模糊你的图像,这会减少人工制品,当然这会以模糊为代价。
如果是2:明显使用更好的编码器!
答案 3 :(得分:0)
你试过imagemagick吗? 您可以更改其分辨率并转换其格式。它还有命令行工具。
答案 4 :(得分:0)
您可以尝试使用Render High Resolution Images using VRay or 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 Editor选项。
它的对话框应该打开。接下来,将上述脚本复制并粘贴到对话框的文本字段中。
默认情况下,脚本会自动使用(getdir #autoback)代码字符串查找自动保存路径;并以“Rend_autosave.tif”的名称将文件保存为TIF文件格式。
可以手动更改。例如,默认路径可以保存在以下位置:C:\ Users \ Public \ Pictures
相关的代码行将替换为以下内容:“Local Autosavedir = C:\ Users \ Public \ Pictures +”Rend_autosave.tif“。