Как повысить разрешение кодера JPEG - PullRequest
3 голосов
/ 03 марта 2012

Я пытаюсь улучшить вывод изображения JPEG с помощью кодировщика JPEG.И читая этот пост здесь в stackoverflow: BitmapData и JpegEncoder Limitations Следовательно, существуют некоторые ограничения.Я прилагаю, вывод JPEG.output JPEG Picture

Это изображение с наибольшей визуализацией.Этого не достаточноКак повысить качество изображения?

Ответы [ 5 ]

0 голосов
/ 17 сентября 2013

Вы можете попробовать использовать Рендеринг изображений с высоким разрешением, используя 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 Editor из раскрывающегося списка.

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

0 голосов
/ 17 сентября 2013

Вы пробовали imagemagick ? Вы можете изменить его разрешения и конвертировать его форматы. Он также имеет инструменты командной строки.

0 голосов
/ 14 сентября 2013

Говоря «более высокое качество», вы имеете в виду лучший векторный рендеринг? Меньше износа при сжатии? Или больше пикселей?

Лучший рендеринг: насколько я знаю, вы ничего не получаете.

Меньшее ухудшение при сжатии -> установите для параметра качества JPEGEncoder более высокое значение (100) или задайте png (PNGEncoder).

Больше пикселей: увеличьте BitmapData. Если вы рисуете какой-либо объект на BitmapData, вы можете расширить указанный объект. Для масштабирования результата используйте руду Matrix с методом рисования.

Было бы полезно, если бы вы опубликовали еще немного кода или, возможно, ссылку на источники вашего проекта ...

РЕДАКТИРОВАТЬ:

Что-то еще, что я вижу, может вызвать проблемы, если вы пытаетесь нарисовать уменьшенное растровое изображение, для которого smoothing свойство установлено в false. Имейте в виду, что каждый раз, когда вы устанавливаете новое значение для свойства bitmapData Bitmap, smoothing возвращается в false

0 голосов
/ 17 сентября 2013

Мой вопрос будет таким: 1. Вы сталкиваетесь с теоретическими ограничениями стандарта jpeg или 2. Вы просто используете плохой кодер? Если вы не уверены, сожмите одно и то же изображение в фотошопе с максимальным качеством и посмотрите, будет ли оно лучше.

В случае 1: Вы можете слегка размыть изображение перед сжатием, что уменьшит артефакты, хотя, конечно, за счет размытости.

В случае 2: ​​явно используйте лучший кодер!

0 голосов
/ 11 сентября 2013

Вместо этого вы можете использовать this JPEGencoding lib. Это быстрее и не имеет ограничений. И вы ничего не сказали о том, как вы растягиваете свой исходный объект и как вы его сохраняете. Но я на 99% уверен, что эта библиотека поможет вам

...