![output JPEG Picture](https://istack.dev59.com/jgwpT.webp)
这是最高分辨率的图片,但仍然不够好。如何提高图片质量?
这是最高分辨率的图片,但仍然不够好。如何提高图片质量?
当说“更高质量”时,您是指更好的矢量渲染吗?压缩时减少退化?还是更多像素?
更好的渲染:据我所知,您没有得到任何东西。
在压缩时减少退化 -> 将JPEGEncoder质量参数设置为更高的值(100),或制作png(PNGEncoder)。
更多像素:使BitmapData
更大。如果您要将某个对象绘制到BitmapData
中,则可以扩大该对象。或使用带有绘图方法的Matrix
来缩放结果。
如果您可以发布更多代码或项目源链接,那将非常有帮助...
我看到可能会给您带来问题的另一件事是,如果您尝试绘制一个缩小的位图,并将其smoothing
属性设置为false
。请注意,每次将新值设置为Bitmap
的bitmapData
属性时,smoothing
都会被重置为false
我的问题是:你是遇到了JPEG标准的理论限制,还是只是使用了劣质的编码器?如果不确定,可以在Photoshop中使用最高质量设置压缩相同的图像,看看是否有所改善。
如果是情况1:在压缩之前可以稍微模糊一下图像,这样可以减少伪影,但当然会牺牲清晰度。
如果是情况2:显然要使用更好的编码器!
你可以尝试使用使用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编辑器选项。
对话框应该打开。然后将上述脚本复制并粘贴到对话框的文本字段中。
默认情况下,该脚本会自动使用(getdir#autoback)代码字符串查找自动保存路径,并将文件另存为名为 "Rend_autosave.tif" 的 TIF 文件格式。
这可以手动更改。例如,默认路径可以保存在以下位置:C:\Users\Public\Pictures
相关的代码行将被替换为以下内容:“Local Autosavedir = C:\Users\Public\Pictures + "Rend_autosave.tif"。