2015-05-19 2 views
0

Мне интересно, можно ли сохранить круговое изображение или если оно всегда должно быть квадратным прямоугольным изображением, даже если вы выбираете круговую рентабельность?Теория: можно ли сохранить круговое изображение?

Нет конкретного языка, это больше похоже на теоретический вопрос. Чтобы узнать, какой максимальный размер я могу обработать.

В моем случае я применяю круговую маску с матрицей на изображении BMP и возвращает квадратные изображения. Мне не нужна информация вокруг круга, поэтому я хочу уменьшить размер моего изображения, чтобы сохранить вычислительную стоимость для следующих процессов.

+1

Любой конкретный язык программирования, среда или формат файла? –

+1

Теперь это может отличаться, но [посмотрите] (http://superuser.com/a/327507/381953). – Suzi

ответ

2

файлов форматов, таких как PNG или JPG просто не имеют смысла для кругового изображения, потому что форматы файлов уже подразумевают, что существует прямоугольный набор пикселей, которые будут сохранены.

Конечно, один может определить собственный формат файла. Ничто не мешает вам определять формат файла, возможно, похожий на PNG, который дополнительно сохраняет радиус (в пикселях), а за ним хранятся только пиксели, которые являются частью круговой области.

Другой вариант - это просто другое представление в памяти. Можно, например, определить круговую область пикселей в памяти:

PPPP 
PPPPPP 
PPPPPPPP 
PPPPPP 
    PPPP 

Тогда вы могли бы расположить эти пиксели, чтобы заполнить прямоугольную область (в памяти!):

PPPP PPPPPP PPPPPPPP 
PPPPPP PPPP ........ 

и сохранить это как изображение. (Обратите внимание, что формат изображения должен быть без потерь. Сохранение такого изображения, как JPG, не имеет смысла по разным причинам). При декодировании этого изображения (т. Е. При чтении файла изображения) вам потребуется дополнительная информация об исходном радиусе круга. Затем вы можете создать новую круговую область пикселей, заполненную пикселями, которые были прочитаны из (прямоугольного) изображения.

Что-то вроде этого могущества даже иметь смысл, когда у вас есть очень большая круговая область, и хочет, чтобы избежать сохранений (бесполезные) «угловые точек» в файл. Но я сомневаюсь, что есть реалистичные кейсы приложений для чего-то вроде этого.

Смежные вопросы