Растровые изображения: Растровое и векторное изображение
Что такое растровые данные?—Справка | ArcGIS for Desktop
В простейшем варианте растровые данные состоят из матрицы ячеек (или пикселов), которая организована в строки и столбцы (сетку), где каждая ячейка содержит значение, несущее некую информацию, например температуру. Растры – это цифровые аэрофотоснимки, спутниковые снимки, цифровые фотографии и даже сканированные бумажные карты.
Данные хранятся в растровом формате, отображающем явление реального мира:
- Тематические данные (также именуемые дискретными) могут отображать, например типы землепользования или почвенные данные.
- Непрерывные данные содержат информацию о таких показателях, как температура, высота над уровнем моря, либо спектральную информацию – в случае с аэрофото- и космическими снимками.
- Изображения могут представлять собой, в том числе сканированные карты и фотографии зданий.
Тематические и непрерывные растры могут быть отображены как слои данных наряду с другой географической информацией на вашей карте, но обычно они используются в качестве исходных данных для осуществления пространственного анализа с помощью дополнительного модуля ArcGIS Spatial Analyst.
Подробнее о тематических и непрерывных данных
Если структура растра является простой, он может применяться для решения большого количества задач. В ГИС направления использования растровых данных можно разделить на четыре основные категории:
- Растры как базовые карты
Типичным использованием растровых данных в ГИС является их применение в качестве фонового для показа векторных слоев изображения. Например, ортофотоснимки, показываемые под другими слоями, будут свидетельствовать о том, что слои карты пространственно упорядочены и отображают реальные объекты, а также будут являться источником дополнительной информации. Существуют три основных типа растровых базовых карт – это ортотрансформированные аэрофотоснимки, спутниковые снимки и сканированные карты.
- Растры как карты поверхности
Растры отлично подходят для показа данных, непрерывно изменяющихся в пространстве (поверхностей). Они являются отличным способом хранения непрерывного поля значений в виде поверхности. А кроме того, обеспечивают отображение поверхностей с использованием регулярно расположенных значений. Значения высоты, измеренные с поверхности земли, являются наиболее типичным источником материала для карт поверхностей. Однако для осуществления пространственного анализа могут использоваться и поверхности, отображающие значения количества выпавших осадков, температуры, концентрации, плотности населения и т.д. Расположенный ниже растр отображает рельеф: зеленым цветом показываются низкие участки, а красным, розовым и белым – ячейки, имеющие большие значения высоты.
- Растры как тематические карты
Растры отображают тематические данные, которые могут быть получены путем анализа других данных. Типичным применением анализа является классификация спутникового изображения по типам землепользования. Как правило, во время этой процедуры значения яркости пикселов в различных каналах многозональных данных делятся на классы (например, по типам растительности) и классам присваиваются значения категорий. тематические карты могут также быть результатом операций геообработки, комбинирующих данные из различных источников: векторных, растровых и данных terrain. К примеру, можно обработать информацию с помощью модели геообработки с целью создания набора растровых данных, подходящего вам для решения конкретных задач. Ниже приведен пример классифицированного набора растровых данных по типам землепользования.
- Растры как атрибуты объектов
Растры, использующиеся в качестве атрибутов объектов, – это цифровые снимки, сканированные документы и рисунки, имеющие отношение к какому-то географическому объекту или местоположению. Слой участков может сопровождаться сканированными юридическими документами, описывающими последние сделки, совершенные с участками, а слой со входами в пещеру – соответствующими изображениями, связанными с точечными объектами.
С какой целью данные хранятся в растровом виде?
Иногда у вас не будет другого варианта, кроме как хранить ваши данные в растровом виде: например снимки доступны лишь в растровом представлении. Однако есть масса других объектов (например, точечных) и измерений (например, количества выпавших осадков), которые можно хранить не только в растровом, но и в векторном виде.
Преимущества хранения данных в растровой форме:
- Простая структура данных – матрица ячеек со значениями координат и иногда связанных с атрибутивной таблицей
- Предназначенность для расширенного пространственного и статистического анализа данных
- Возможность отображения непрерывных поверхностей и осуществления их анализа
- Возможность хранения точек, линий, полигонов и поверхностей
- Возможность осуществления простых оверлеев с использованием сложных наборов данных
Есть, однако и иные соображения относительно хранения данных в растровом виде, которые, возможно, убедят вас хранить их в векторном виде. Например:
Подробнее об отображении объектов в наборе растровых данных
Основные характеристики растровых данных
В наборах растровых данных каждая ячейка, называемая пикселом, содержит значение. Значения ячеек могут отображать: категории классификации, значения показателей, высоту или спектральную яркость. Категориями классификации могут быть, например, типы землепользования (газоны, леса, дороги и др.) Значение какого-либо показателя несет информацию о земной гравитации, шумовом загрязнении или количестве выпавших осадков. Высота (расстояние) отображает высоту земной поверхности над уровнем моря, которая может использоваться для вычисления крутизны и направления склонов, свойств речных бассейнов и др. Спектральные значения мы видим в спутниковых и аэрофотоснимках – они соответствуют отражательной способности и цвету подстилающей поверхности.
Значения ячеек растра могут быть положительные или отрицательные, целочисленные или с плавающей точкой. Целые значения обычно используются для показа категорий (дискретных данных), а значения с плавающей точкой – для отображения непрерывных полей. Для получения дополнительной информации о дискретных и непрерывных данных см. раздел Дискретные и непрерывные данные. Ячейки также могут иметь значение NoData, означающее отсутствие данных. Для получения информации о NoData обратитесь к разделу NoData в наборах растровых данных.
Растры хранятся в виде упорядоченного списка значений ячеек, например: 80, 74, 62, 45, 45, 34 и т.д.
Территория (или поверхность), отображаемая ячейкой, имеет такую же ширину и высоту, поскольку представляет собой тот же самый участок поверхности, который показан на растре. К примеру, растр высот земной поверхности (т. е. ЦМР) может покрывать территорию в 100 кв. км. Если такой растр состоит из 100 ячеек, каждая ячейка будет отображать 1 кв. км (т.е. участок поверхности размером 1 км х 1 км).
Размеры ячеек могут быть большими или маленькими – в зависимости от того, насколько точно нужно передать поверхность и объекты на ней: это может быть кв. км, кв. футы и даже кв. см. Размер ячейки определяет, насколько качественно или, наоборот, грубо будут отображены объекты на растровом изображении. Чем меньше размер, тем более сглаженным и детализированным будет ваш растр. Однако с увеличением числа ячеек будет увеличиваться и длительность процесса, а также занимаемый растром объем дискового пространства. Если размер ячейки будет слишком большим, может потеряться часть информации и мелкие объекты могут пропасть с изображения. Например, если размер ячейки будет больше, чем ширина дороги, дорога на таком растре может не читаться. На расположенном ниже рисунке вы увидите, как простой полигональный объект будет отображаться в наборах растровых данных с различными размерами пикселов.
Местоположение каждой ячейки определяется строкой и столбцом матрицы, в которых расположена данная ячейка. По существу матрица представляет собой Декартову систему координат, в которой строки матрицы параллельны оси x, а столбцы – оси y. Номера строк и столбцов начинаются с 0. На показанном ниже примере, если растр находится в системе координат проекции Universal Transverse Mercator (UTM) и имеет размер ячейки, равный 100, то ячейка, находящаяся в пятой строке и первом столбце, будет иметь координаты x=300500, y=5900600.
Подробнее о преобразовании набора растровых данных
Часто вам необходимо будет задавать экстент растра. Экстент определяется верхней, нижней, левой и правой координатами прямоугольника, покрытого растром, как показано ниже.
Связанные темы
Отзыв по этому разделу?Растровые и векторные изображения
Прежде чем браться за изучение программы фотошоп, следует вначале ознакомиться с самыми начальными базовыми понятиями из мира цифровой графики. К таковым относятся виды графики: растровые и векторные изображения.
Эти два понятия будут постоянно вам встречаться, поэтому давайте разберемся, что это такое и в чем между ними разница.
Растровые изображения
Растровые изображения это основной и самый популярный вид графики. Львиная часть изображений, которые вы встречаете в интернете, это именно растр. Ваш фотоаппарат, смартфон и любой другой гаджет или прибор делают снимки, которые уже относятся к растру. Это технически самый простой и доступный способ отрисовки графики.
Как любой живой организм состоит из мельчайших частиц — клеток, так растровое изображение состоит из пикселей.
Пиксели — это крошечные элементы, квадратной формы, которые содержат в себе информацию о цвете, яркости и прозрачности. Подробнее о пикселях читайте здесь.
Программа фотошоп была создана для работы именно с растровыми изображениями. Все возможности, инструменты и механизмы программы разработаны для редактирования пикселей изображения.
Почему этот вид графики такой популярный?
Дело в том, что в силу своей структуры, растровые изображения могут отображать плавные переходы цвета, градиенты. Края объектов на фотографиях могут быть плавными. Цвет передается четко, близким к реальному, а это именно то, что нужно, чтобы передать наш реальный мир в виде фотографии.
Растровые изображения обычно хранятся в сжатом виде. В зависимости от типа сжатия может быть возможно или невозможно восстановить изображение в точности таким, каким оно было до сжатия (сжатие без потерь или сжатие с потерями). Так же в графическом файле может храниться дополнительная информация: об авторе файла, фотокамере и её настройках, количестве точек на дюйм при печати и др.
Несмотря на преимущества, у растра есть серьезные недостатки:
1. В связи с тем, что каждый пиксель содержит в себе достаточно много информации, то когда мы говорим о миллионах пикселей в одном изображении, становится ясно, какой объем информации будет закодирован в памяти. Это приводит к увеличению размеров файла. Поэтому, чем больше пикселей в фотографии, тем больше она весит.
2. Сложности масштабирования изображения. При увеличении появляется зернистость и пропадает детализация. При уменьшении фотографии, в результате сложных преобразовательных процессов, происходит потеря пикселей. При этом детализация изображения пострадает не так сильно, как при увеличении, но этот процесс уже необратимый, то есть, если потребуется вновь увеличить изображение, оно сильно потеряет в качестве.
Векторные изображения
Векторные изображения состоят из элементарных геометрических объектов, таких как: точки, линии, круги, многоугольники и так далее.
Векторное изображение — это набор координат вершин, образующих простейшие геометрические фигуры, из которых складывается итоговое изображение.
Такая графика создается непосредственно человеком с помощью специализированных программ, например, Adobe Illustrator и Corel Draw. Нужно обладать специальными навыками пользования этими программами, а также умением рисовать. Понятное дело, это доступно не многим людям, поэтому такой вид графики не так широко распространен.
Векторные изображения преимущественно создаются для индустрии рекламы и дизайна.
Достоинства векторной графики:
1. Возможность изменять масштаб изображений без потери качества до любых размеров, при этом вес изображения не увеличивается. При изменении размеров происходит пересчёт координат и толщины линий, а затем построение объектов в новых размерах.
2. Векторное изображение не хранит в себе тонны информации, поэтому вес такого файла будет в разы меньше растра.
3. Возможность трансформации изображения из вектора в растр без потери качества и каких-либо сложностей. Это может сделать фотошоп в два щелчка мыши.
Недостатки:
Векторная графика не годится для создания реалистичных картин и фотографий. Она сильно ограничена в передаче плавных переходов и градиентов между цветами. В результате этого все цвета и линии сильно контрастируют.
Фотошоп хоть и работает с растровой графикой, но в своем наборе инструментов содержит и векторные элементы. Прежде всего это инструмент «Текст». При добавлении текста к изображению в фотошопе, создается отдельный текстовый слой. До тех пор пока этот слой живет самостоятельно, он является векторным элементом. Его можно растягивать до любых размеров и текст всегда будет четким.
Произвольные фигуры фотошопа также представляют из себя простейшие векторные изображения.
Помимо всего этого, хоть фотошоп не может создавать векторную графику, он может открывать ее. Тем самым можно добавлять заранее подготовленные дизайн-объекты и масштабировать их без потери качества.
Таким образом, подведем короткие выводы:
— растровые изображения фотореалистичные, а у векторных изображений всегда видно, что они нарисованы;
— масштабирование изображений очень важная возможность, которой нужно уметь пользоваться при работе с фотошопом. Для этого надо знать как и когда теряется качество графики и стараться не допустить этого. Тогда ваши будущие работы будут из тех, где приятно любоваться самыми мелкими деталями и восхищаться насколько они классно нарисованы.
Заметили ошибку в тексте — выделите ее и нажмите Ctrl + Enter. Спасибо!
Работа с растровыми и векторными изображениями — Windows Forms .NET Framework
- Статья
- Чтение занимает 2 мин
Оцените свои впечатления
Да Нет
Хотите оставить дополнительный отзыв?
Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.
Отправить
Спасибо!
В этой статье
GDI+ предоставляет Bitmap
класс для работы с растровыми изображениями и Metafile
класс для работы с векторными изображениями. Классы Bitmap
и Metafile
являются производными от класса Image
.
В этом разделе
Практическое руководство. Рисование существующего точечного рисунка на экране
Описано, как загружать и отображать точечные рисунки.
Практическое руководство. Загрузка и отображение метафайлов
Описано, как загружать и отображать метафайлы.
Обрезка и масштабирование изображений в GDI+
Описано, как обрезать и масштабировать векторные и растровые изображения.
Практическое руководство. Поворот, отражение и наклон изображений
Описано, как поворачивать, отражать и наклонять изображения.
Как использовать режим интерполяции для управления качеством изображения во время масштабирования
Показано, как использовать перечисления InterpolationMode для изменения качества изображения.
Практическое руководство. Создание эскизов изображений
Описано, как создавать эскизы изображений.
Практическое руководство. Повышение производительности за счет отключения автоматического масштабирования
Объясняется, как рисовать изображения без автоматического масштабирования.
Практическое руководство. Чтение метаданных изображения
Описано, как производить чтение метаданных изображения.
Практическое руководство. Создание растрового изображения во время выполнения
Показано, как рисовать точечный рисунок во время выполнения.
Практическое руководство. Извлечение связанного с файлом значка в Windows Forms
Описано, как извлекать значок, являющийся внедренным ресурсом файла.
Справочник
Image
Описывает данный класс и предоставляет ссылки на все его члены.
Metafile
Описывает данный класс и предоставляет ссылки на все его члены.
Bitmap
Описывает данный класс и предоставляет ссылки на все его члены.
Работа с растровыми и векторными изображениями с использованием классов Image, Bitmap и Metafile
Содержит ссылки на разделы с описанием различных типов растровых изображений и способов работы с ними в приложениях.
Растровые изображения как кисти — Win32 apps
- Статья
- Чтение занимает 2 мин
Оцените свои впечатления
Да Нет
Хотите оставить дополнительный отзыв?
Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.
Отправить
Спасибо!
В этой статье
Ряд функций использует выбранную кисть в контексте устройства для выполнения операций точечного рисунка. Например, функция патблт реплицирует кисть в прямоугольной области внутри окна, а функция флудфилл реплицирует кисть внутри области окна, ограниченного указанным цветом (в отличие от патблт, флудфилл заполняет непрямоугольные фигуры).
Функция флудфилл реплицирует кисть в пределах региона, ограниченного указанным цветом. Однако, в отличие от функции патблт , флудфилл не объединяет данные цвета кисти с цветовыми данными для пикселов на дисплее; Он просто задает цвет всех пикселов внутри области, отображаемой цветом кисти, выбранной в контексте устройства.
Не удается найти страницу | Autodesk Knowledge Network
(* {{l10n_strings.REQUIRED_FIELD}})
{{l10n_strings.CREATE_NEW_COLLECTION}}*
{{l10n_strings.ADD_COLLECTION_DESCRIPTION}}
{{l10n_strings.COLLECTION_DESCRIPTION}} {{addToCollection.description.length}}/500 {{l10n_strings.TAGS}} {{$item}} {{l10n_strings.PRODUCTS}} {{l10n_strings.DRAG_TEXT}}{{l10n_strings.DRAG_TEXT_HELP}}
{{l10n_strings. LANGUAGE}} {{$select.selected.display}}{{article.content_lang.display}}
{{l10n_strings.AUTHOR}}{{l10n_strings.AUTHOR_TOOLTIP_TEXT}}
{{$select.selected.display}} {{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}} {{l10n_strings.CREATE_A_COLLECTION_ERROR}}Формат | Название |
. 001 | Файл факса |
.2bp | Точечный рисунок (Pocket PC) |
.360 | Файл панорамы 360desktop |
.411 | Эскиз фотографии Sony Mavica |
.73i | Скриншот TI-73 |
.8ca | Формат фонового изображения TI-84 Plus C |
.8ci | Формат графического изображения TI-84 Plus C |
.8pbs | Файл Adobe Photoshop (Macintosh) |
.8xi | Файл изображения TI-83/84 Plus |
.9.png | Файл изображения NinePatchDrawable |
.abm | Фотоальбом |
.acorn | Файл изображения Acorn |
.acr | Файл медицинского радиологического изображения |
.afphoto | Файл изображения Serif Affinity Photo |
.afx | Файл изображения Auto FX PhotoGraphic Edges |
.agif | GIF-анимация Active GIF Creator |
.agp | Файл проекта ArtGem |
. aic | Кодированное изображение AIC |
.apd | Точечный рисунок ACDSee Photo Editor |
.apm | Изображение, метафайл Aldus |
.apng | Файл PNG с поддержкой анимации |
.aps | Файл проекта Greeting Card Studio |
.apx | Файл изображения Ability Photopaint Studio |
.arr | Точечный рисунок ARR |
.art | Файл изображения AOL |
.arw | Файл изображения ArtStudio |
.ase | Файл графического объекта Aseprite |
.aseprite | Файл графического объекта Aseprite |
.avatar | Файл аватара Google Talk |
.avb | Файл аватара пользователя Microsoft Comic Chat |
.awd | Файл факса |
.awd | Файл рисунка Artweaver |
.blkrt | Файл изображения Block Artist |
.blz | Сжатое растровое изображение |
. bm2 | Файл изображения Subspace |
.bmc | Файл кэша графического изображения |
.bmf | Двоичный файл текстуры |
.bmp | Точечный рисунок |
.bmq | Файл изображения текстур Re-Volt |
.bmx | Анимация для телефона Siemens |
.bmz | Сжатый точечный рисунок BMZ |
.bpg | Файл изображения BPG |
.brk | Факс Brooktrout |
.brn | 3D-анимация Cube |
.brt | Файл текстуры Bryce |
.bss | Файл изображения игры Resident Evil |
.bti | Файл текстуры игры (Nintendo GameCube) |
.bw | Файл черно-белого изображения SGI |
.cal | Растровое изображение CALS |
.cam | Файл необработанного изображения с цифровых камер CASIO QV |
.can | Факс Canon Navigator |
.cd5 | Файл изображения Chasys Draw |
. cdg | Файл изображения Compact Disc Plus Graphics |
.cid | Файл описания карты Navigator |
.cin | Растровое изображение Kodak Cineon |
.cit | Точечный рисунок Intergraph |
.clip | Файл формата Clip Studio |
.cmr | Файл аэронавигационной карты США |
.colz | Документ Adobe Collage |
.cpc | Точечный рисунок CPC |
.cpd | Сжатый файл изображения PhotoDefiner |
.cpg | Страница комикса Manga Studio |
.cps | Файл изображения Corel Photo House |
.cpt | Растровое изображение Corel Photo-Paint |
.cpx | Сжатый файл изображения CMX (Corel) |
.csf | Файл изображения в формате CSF |
.ct | Файл изображения Scitex |
.dc2 | Файл изображения Kodak Photo |
.dcm | Файл медицинского изображения (DICOM) |
. dcx | Файл многостраничного изображения Zsoft |
.ddb | Файл изображения для драйвера устройства |
.dds | Растровое изображение DirectDraw |
.ddt | Файл графических текстур игры Age of Mythology |
.dgt | Эскиз схемы вышивки |
.dib | Файл изображения DIB |
.dic | Файл изображения в формате DICOM |
.dicom | Файл медицинского изображения (DICOM) |
.djvu | Электронная книга DjVu |
.dm3 | Файл изображения DigitalMicrograph |
.dmi | Значки в игре BYOND |
.dpx | Файл обмена цифровыми изображениями |
.dt2 | Смайл Windows Live Messenger |
.dtw | Обои для рабочего стола |
.dvl | Файл в формате Dalim Virtual Library для iOS |
.ecw | Файл географического изображения ECW |
. epp | Файл изображения Canon Easy-PhotoPrint |
.exr | Растровое изображение OpenEXR |
.fal | Информация об изображении |
.fax | Факс |
.fbm | Растровое изображение в формате Fuzzy Pixmap Manipulation |
.fil | Логотип приложения (Symbian) |
.fits | Файл растровой графики в формате Flexible Image Transport System |
.flif | Файл изображения в формате Free Lossless Image Format (FLIF) |
.fpg | Файл коллекции графики Fenix |
.fpos | Файл изображения Photo Pos Pro |
.fppx | Файл рисунка Microsoft Fresh Paint |
.fpx | Файл изображения FlashPix |
.frm | Файл анимации Corel Painter |
.g3 | Изображение факса CCITT Group 3 |
.gbr | Файл кисти GIMP |
.gcdp | Дизайн открытки Greeting Card Studio |
. gfb | Файл GIF-изображения сжатого GIFBlast |
.gfie | Файл иконок Greenfish Icon Editor Pro |
.ggr | Файл данных градиентов GIMP |
.gif | Рисунок GIF |
.gih | Файл изображения GIMP |
.gim | Файл изображения PlayStation Portable |
.gmbck | Файл фонового изображения игры (Game Maker) |
.gmspr | Спрайт Game Maker |
.gp4 | Факс CCITT Group 4 |
.gpd | Файл изображения PhotoDefiner |
.gro | Файл графического объекта GROB |
.grob | Точечный рисунок Graphic Object Bitmap |
.gry | Изображение в оттенках серого |
.hdp | Файл изображения HD |
.hdr | Файл изображения High Dynamic Range |
.hdrp | Файл изображения HDRtist Pro |
.heic | Файл изображения в формате HEIC |
. heif | Файл изображения в формате HEIF |
.hf | Файл изображения HF |
.hpi | Файл изображения Hemera |
.hr | Файл растровой графики Tandy TRS-80 |
.hrf | Файл растровой графики в формате Hitachi |
.i3d | Файл 3D-текстур (Houdini) |
.ic1 | Графический файл Imagic низкого разрешения |
.ic2 | Графический файл Imagic среднего разрешения |
.ic3 | Графический файл Imagic высокого разрешения |
.ica | Файл растровой графики в формате IOCA |
.icb | Точечный рисунок Targa ICB |
.icn | Файл-иконка Windows |
.icon | Файл-иконка |
.icpr | Файл проекта IconUtils |
.ilbm | Файл изображения ILBM |
.img | Файл растрового изображения в формате GEM |
.imj | Файл изображения JFIF |
. info | Индексный файл изображений ZoomBrowser |
.ink | Информация о цветах |
.insp | Insta360 Panoramic Image |
.int | Файл изображения Silicon Graphics |
.ipick | Файл изображения iPick Football |
.ipx | Файл изображения IPIX |
.itc2 | Зашифрованный файл данных iTunes |
.ithmb | Файл миниатюр изображений на iPod and iPhone |
.ivr | Файл панорамного изображения |
.ivue | Файл изображения Live Picture в формате IVUE |
.iwi | Файл текстур игры (Infinity Ward) |
.j | Файл изображения JPEG |
.j2c | Файл изображения JPEG 2000 |
.j2k | Файл изображения JPEG 2000 |
.jas | Сжатое изображение Paint Shop Pro |
.jb2 | Файл изображения JBIG2 |
.jbf | Файл кэша компонента просмотра изображений Corel Paint Shop Pro |
. jbg | Файл изображения в формате JBIG |
.jbig | Группа черно-белых изображений |
.jbig2 | Точечный рисунок JBIG2 |
.jbmp | Растровое изображение JAmes OS |
.jbr | Файл кистей Paint Shop Pro |
.jfi | Растровое изображение в формате JPEG File Interchange |
.jfif | Файл изображения JPEG |
.jia | Альбом Digital Photo Navigator |
.jif | Файл изображения JPEG |
.jiff | Файл изображения JPEG |
.jng | Файл изображения JPEG |
.jp2 | Файл изображения JPEG 2000 |
.jpc | Потоковый файл изображения JPEG 2000 |
.jpd | Файл изображения PhotoDefiner |
.jpe | Файл изображения JPEG |
.jpeg | Файл изображения JPEG |
.jpf | Файл изображения JPEG 2000 |
.jpg | Файл изображения JPEG |
. jpg-large | Файл изображения JPEG |
.jpg2 | Файл изображения JPEG 2000 |
.jps | Стереоскопическое изображение JPEG |
.jpx | Файл изображения JPEG 2000 |
.jtf | Файл изображения JPEG с тегами |
.jwl | Обложка диска Easy CD Creator |
.jxr | Файл изображения JPEG XR |
.kdi | Файл изображения обложки (скина) KD Player |
.kdk | Цифровая фотография в формате Kodak TIFF |
.kfx | Файл изображения Kofax |
.kic | Сжатый файл изображения Kodak |
.kodak | Файл на диске Kodak Photo CD |
.kpg | Файл изображения Kai’s Power Goo |
.kra | Krita Image Document |
.lb | Файл проекта Lens Blur |
.lbm | Файл изображения Deluxe Paint |
.lif | Файл изображения с микроскопа Leica |
. lip | Файл изображения Clip Studio Paint |
.ljp | Файл изображения JPEG, сжатие без потери качества |
.lrpreview | Файл предварительного просмотра Adobe Lightroom |
.lzp | Растровое изображение в формате LazPaint |
.mat | Файл материала E-on Vue |
.max | Отсканированный документ PaperPort |
.mbm | Файл 3D-модели текстуры Kerbal Space Program |
.mbm | Файл изображения Multi |
.mdp | MediBang Paint Pro Image |
.mdp | Файл изображения FireAlpaca |
.met | Метафайл IBM’s Presentation Manager |
.miff | Файл изображения ImageMagick |
.mix | Файл векторного изображения MIX |
.mng | Составное изображение MNG |
.mnr | Файл ресурсов меню AutoCAD |
.mpf | Пакет клип-арта Microsoft Office |
. mpo | Стереоскопическое изображение с цифровой камеры |
.mrxs | Файл виртуальных слайдов MIRAX |
.msp | Файл изображения Microsoft Paint |
.mxi | Файл изображения Maxwell Render |
.myl | Файл изображения MyLogo |
.ncd | Файл макета обложки диска Nero CoverDesigner |
.ncr | Файл изображения NCR |
.nct | Шаблон Nero CoverDesigner |
.neo | Растровое изображение NeoChrome |
.nlm | Логотип Nokia |
.nol | Файл фонового логотипа экрана телефона Nokia |
.nwm | Файл дисплея Sony NWM |
.oc3 | Журнал событий openCanvas 3 |
.oc4 | Журнал событий openCanvas 4 |
.oc5 | Журнал событий openCanvas 5 |
.oci | Файл изображения openCanvas |
.odi | Изображение OpenDocument |
. omf | Файл изображения OMF |
.oplc | Логотип оператора на телефоне Nokia |
.ora | Файл изображения в формате OpenRaster |
.ota | Точечный рисунок OTA |
.otb | Файл растрового изображения Nokia Over the Air |
.oti | Шаблон изображения OpenDocument |
.ozb | Файл изображения в игре MU Online |
.ozj | Файл изображения в игре MU Online |
.ozt | Файл изображения в игре MU Online |
.pac | Файл изображения STAD |
.pano | Панорамное изображение Windows Camera |
.pat | Графический файл шаблона |
.pbm | Портативный файл изображения |
.pc3 | Изображение с высоким разрешением Degas Elite |
.pcd | Файл изображения Kodak Photo CD |
.pcx | Растровое изображение Paintbrush |
. pdd | Изображение Adobe PhotoDeluxe |
.pdn | Растровое изображение Paint.NET |
.pe4 | Архив эскизов Photo Explorer |
.pe4 | Архив изображений PhotoImpact |
.pfr | Файл изображения рамки Paint Shop Pro |
.pgf | Файл изображения PGF |
.pgm | Портативная карта (оттенки серого) |
.pi2 | Фотография в формате высокого разрешения Portrait Innovations |
.pi2 | Изображение среднего разрешения Degas |
.pic | Файл изображения PIC |
.pic | Растровое изображение Houdini |
.pic | Файл изображения QuickTime PICT |
.picnc | 3D-изображение Houdini |
.pict | Файл изображения PICT |
.piskel | Файл пиксельной графики Piskel |
.pix | Файл данных изображения BRL-CAD |
.pix | Растровое изображение Alias PIX |
. pixadex | Иконка Pixadex |
.pm | Файл изображения Unix XV |
.pmg | Панорама нескольких изображений Adobe Photoshop |
.png | Рисунок PNG |
.pnm | Файл изображения Portable Any Map |
.pns | Стереоскопическое изображение PNG |
.pov | 3D-графика POV-Ray |
.pov | Файл объекта Prolab |
.ppf | Растровое изображение Corel Picture Publisher |
.ppm | Файл изображения Portable Pixmap |
.prw | Файл предварительного просмотра шейдеров Artlantis |
.psb | Большой документ Adobe Photoshop |
.psd | Документ Adobe Photoshop |
.psdx | Документ Adobe Photoshop Touch |
.pse | Документ Adobe Photoshop Elements |
.psf | Файл изображения PhotoStudio |
.psp | Файл изображения Paint Shop Pro |
. pspbrush | Файл кисти PaintShop Pro |
.pspimage | Файл изображения PaintShop Pro |
.ptex | Файл текстурного изображения Ptex |
.ptg | Проект рисунка ArtRage |
.pts | Файл проекта PTGui |
.ptx | Файл данных изображения Pentax |
.ptx | Файл текстуры Paint Shop Pro |
.pvr | Текстуры POWERVR |
.px | Файл изображения Pixel |
.pxd | Файл многослойного изображения Pixlr |
.pxm | Растровое изображение Pixelmator |
.pxr | Растровое изображение Pixar |
.pyxel | Пиксельное изображение Pyxel Edit |
.pza | Фотоальбом PhotoSuite |
.pzp | Файл проекта PhotoSuite |
.pzs | Слайд-шоу PhotoSuite |
.qif | Файл изображения QuickTime |
.qmg | Файл изображений темы мобильного телефона Samsung |
. qti | Файл изображения QuickTime |
.qtif | Изображение QuickTime |
.ras | Растровое изображение Sun |
.rcl | Файл проекта Recolored |
.rcu | Файл курсора Windows (RealWorld Cursor Editor) |
.rgb | Растровое изображение RGB |
.rgb | Файл изображения Q0 |
.rgba | Растровое изображение в формате RGB |
.rgf | Файл изображения Lego Mindstorms EV3 |
.ric | Файл изображения NXT |
.rif | Растровое изображение Painter |
.riff | Растровое изображение Corel Painter |
.rix | Растровое изображение ColoRIX |
.rle | Растровое изображение RLE |
.rli | Файл изображения RealWorld |
.rpf | 3D-изображение RPF |
.rri | Файл изображения RealWorld |
.rs | Точечный рисунок Sun |
. rsb | Растровое изображение Red Storm |
.rsr | Файл предварительного просмотра 3D-модели Poser |
.rtl | Файл задания печати на языке HP Raster Transfer |
.rvg | Рентгеновское изображение в формате RVG X-ray |
.s2mv | Графический эскиз карты StarCraft 2 |
.sai | Точечный рисунок PaintTool SAI |
.sar | Растровое изображение Saracen Paint |
.sbp | Файл изображения Sketchbook Express сохраненного в iCloud |
.scg | Растровое изображение ColoRIX |
.scn | Файл изображения TreePaint |
.sct | Растровое изображение Scitex |
.sdr | Рисунок SmartDraw |
.sfc | Файл изображения с микроскопа Motic |
.sff | Структурированный файл факсимильного документа |
.sid | Файл изображения MrSID |
.sid | Документ ScanIt |
. sig | Файл изображения Broderbund |
.sig | Файл графики Брайля в формате QuickTac Alternative Graphic |
.sim | Изображение Aurora |
.skitch | Растровое изображение снимка экрана Skitch |
.skm | Файл материалов Google SketchUp |
.sld | Файл слайдов AutoCAD |
.smp | Растровое черно-белое изображение Xionics |
.spa | Файл эффектов 3D-модели MikuMikuDance |
.spc | Сжатое изображение Spectrum 512 |
.spe | Изображение WinSpec CCD |
.sph | Файл эффектов 3D-модели MikuMikuDance |
.spj | Проект панорамы Microsoft Image Composite Editor |
.spp | Файл изображения Serif PhotoPlus |
.spr | Файл 3D-модели Half-Life |
.sprite | Файл спрайта Scratch |
.sprite2 | Файл спрайта Scratch 2.0 |
. srf | Garmin Vehicle Image |
.ste | Файл изображения Samsung IPOLIS |
.sup | Файл субтитров (растровое изображение) |
.t2b | Эскиз изображения CyBook |
.t2k | Canfield Image File |
.targa | Файл растровой графики в формате Targa |
.tb0 | Файл кэша эскизов изображений Adobe Photoshop |
.tbn | Эскиз файла мультимедиа Kodi |
.tex | Файл текстуры |
.texture | Файл изображения текстуры для игр на движке Diesel |
.tfc | Файл текстуры игры (Unreal Engine 3) |
.tg4 | Растровое изображение Tiled Group 4 |
.tga | Файл изображения Targa |
.thm | Эскиз видео-файла |
.thm | Файл изображения (эскиз) |
.thumb | Файл эскизов JAlbum |
.tif | Файл изображения TIF |
. tif | TIFF-изображение в геопространственном формате GeoTIFF |
.tiff | Файл изображения TIFF |
.tjp | Файл изображения Tiled JPEG |
.tm2 | Файл изображения игры (PlayStation 2) |
.tn | Файл изображения на телефоне LG |
.tpf | Файл пакета текстур TexMod |
.tpi | Точечный рисунок TrueVision |
.tps | Файл спрайт-листа TexturePacker |
.trif | Растровое изображение TRIF |
.tsr | Изображение в формате TIFF Simple Rare |
.tub | Инструмент PaintShop Pro |
.u | Файл данных изображения YUV |
.ufo | Файл изображения Ulead PhotoImpact |
.uga | Файл проекта Ulead GIF Animator |
.ugoira | Файл анимированного изображения в формате Ugoira |
.upf | Файл исходных изображений панорамы Panono |
. urt | Файл данных Utah Raster Toolkit |
.v | Файл данных изображения YUV |
.vda | Растровое изображение Targa |
.vff | Файл изображения Sun TAAC |
.vic | Изображение VICAR |
.vicar | Растровое изображение в формате Video Image Communication and Retrieva |
.viff | Файл изображения VIFF |
.vna | Файл изображения JVC JLIP |
.vpe | Файл экспорта точек схода Adobe Photoshop |
.vrimg | Файл изображения в формате V-Ray |
.vrphoto | Файл панорамного изображения VR Photo |
.vss | Файл инструментов Visio |
.vst | Растровое изображение VST |
.wb0 | Файл изображения Webshots Desktop Connect |
.wb1 | Файл изображения Webshots |
.wb2 | Файл изображения Webshots Desktop Connect |
. wbc | Коллекция JPEG-изображений Webshots |
.wbd | Файл изображения Webshots |
.wbm | Черно-белое растровое изображение с мобильного устройства |
.wbmp | Черно-белый точечный рисунок |
.wbp | Файл коллекции изображений Webshots Desktop Connect |
.wbz | Загруженные изображения Webshots |
.wdp | Растровое изображение Windows Media Photo |
.webp | Растровое изображение WebP |
.wi | Файл изображения Wavelet |
.wic | Изображение J Wavelet |
.wmp | Изображение Windows Media Photo |
.wpb | Файл изображения openCanvas 1.1 |
.wpe | Файл событий openCanvas 1.1 |
.wvl | Файл изображения Wavelet |
.xbm | Растровое изображение X11 |
.xcf | Файл изображения GIMP |
.xpm | Файл изображения X11 Pixmap |
. xwd | Изображение снимка экрана X Windows System |
.y | Файл данных изображения YUV |
.ysp | Спрайт BYOB |
.yuv | Кодированный файл изображения YUV |
.zif | Масштабируемый файл изображения |
.zif | Zoomify Image Format File |
.zvi | Файл изображения высокого разрешения с микроскопа Zeiss |
Растровая и векторная графика. В чем разница? | Дизайн, лого и бизнес
Периодически мы слышим о том, что графика бывает векторной и растровой. Но не каждый сможет объяснить разницу между этими двумя понятиями. Возможно для человека, который работает с текстовыми редакторами и электронными таблицами, она и не важна, но если мы говорим о дизайне и графике, понимание различных способов построения изображений необходимо.
Создайте свой логотип онлайн. Более 50 тысяч брендов по всему миру уже используют логотипы от Турболого.
Создать логотип онлайнРастровая графика
Чтобы понять принцип построения растрового изображения, представьте себе лист масштабно-координатной бумаги (миллиметровки), каждая клеточка которого закрашена каким-то цветом. Такую клеточку называют пикселем.
Качество изображения называют разрешением. Его определяют количеством пикселей, которые как раз и формирует рисунок. Чем больше пикселей размещено на единице площади, тем выше разрешение, а следовательно выше и качество изображения. Например, рисунок с разрешением 1280×1024 состоит из 1280 px по вертикали и 1024 px по горизонтали. Следует отметить, что в данном случае речь идёт о физическом размере изображения, а не о единице площади (дюйме, сантиметре и т.п.).
Основным недостатком растровых изображений является заметное ухудшение качества при масштабировании (имеется ввиду увеличение размера изображения). Дело в том, что увеличивая (уменьшая) размер изображения, вы увеличиваете (уменьшаете) размер каждого пикселя, что, при значительном масштабировании, позволяет их визуально определить.
Кроме того, часто к недостаткам растра относят: отсутствие возможности поворота рисунка на угол, отличный от 90* без заметного искажения самого рисунка, а также размер файла, который напрямую связан с качеством изображения.
Достоинства растровых картинок также бесспорны. В первую очередь, это фотографическое качество получаемого изображения, способное передать всю гамму цветов и их оттенков.
Наиболее распространённым программным обеспечением для работы с растровыми изображениями является Adobe Photoshop.
Векторная графика
Построение векторного изображения основано на так называемых опорных точках, которые соединены между собой кривыми, определяемыми соответствующими математическими алгоритмами. Работая с векторным изображением, пользователь задаёт его опорные точки и характер векторных кривых между ними.
К преимуществам векторных изображений чаще всего относят простоту редактирования как рисунка в целом, так и его отдельных элементов, возможность как корректировки, так и значительного изменения размера изображения без потери качества (включая поворот на заданный пользователем угол) и изменения размера файла, а также небольшой размер файла.
Векторные изображения могут быть легко преобразованы в растровый формат любого разрешения.
Создание полноцветных векторных рисунков фотографического качества достаточно трудоемко и технически сложно, что существенно ограничивает возможности работы с целым рядом категорий изображений и является её основным недостатком.
Наиболее популярным программным обеспечением для работы с векторной графикой являются CorelDraw и Adobe Illustrator.
Плюсы и минусыРастровые изображения
Плюсы: четко и максимально правдоподобно отображает оттенки цветов, их перетекание из одного в другой, а также тени.
Минусы: При увеличении заметно теряет в четкости и выглядит некачественно.
Применение: Применяются, как правило, при работе с фотографиями и другими изображениями с насыщенной цветовой гаммой и плавными переходами цвета. Активно применялась при дизайне сайтов, иконок приложений. Правда сейчас, когда flat и material дизайн стали так популярны, дизайнеры все чаще использую векторные программы для своих творений.
Векторные изображения
Плюсы: масштабирование без потери четкости изображения. Малый размер изображений.
Минусы: очень сложно передать плавные переходы цвета и добиться фотографического качества
Применение: Применяется при создании логотипов компаний, визиток, буклетов и иной печатной продукции. Также редакторы векторной графики незаменимы при создании новых, оригинальных шрифтов. Но и это еще не все. В редакторах векторной графики можно создавать прекрасные иллюстрации.
Чаще всего, дизайнеры совмещают эти типы графики, чтобы добиться максимального эффекта. Иногда лучше использовать растр, иногда — вектор. Надеемся, эта статья помогла вам немного лучше понять в чем разница между этими двумя типами изображений. Спасибо за внимание.
Продуктовый и графический дизайнер с опытом работы более 10 лет. Пишу о брендинге, дизайне логотипов и бизнесе.
Руководство для начинающих по растровым изображениям
Написано Полом БуркомВизуализация и модели Питером Дипроузом и Биллом Раттенбери
Оригинал Ноябрь 1993 г.
Перевод на итальянский от theunbiasedreviews.com и Boutiquesetup.com
Перевод на португальский язык Артура Вебера и Аделины Домингуш.
Украинский перевод предоставил Дмитрий Нечупорик
Введение
Этот документ должен служить элементарным введением в растровые изображения. как они используются в компьютерной графике.
Определение
Растровые изображения определяются как регулярная прямоугольная сетка ячеек, называемых пикселями, каждая из которых пиксель, содержащий значение цвета. Они характеризуются всего двумя параметрами, количество пикселей и информационное содержание (глубина цвета) на пиксель. Существуют и другие атрибуты, которые применяются к растровым изображениям, но они являются производными. из этих двух основных параметров.
Обратите внимание, что растровые изображения всегда ориентированы горизонтально и вертикально. Пиксели
должны считаться квадратными, хотя они могут иметь другие соотношения сторон в
упражняться.
В большинстве случаев растровые изображения используются для представления изображений на
компьютер. Например, следующее растровое изображение имеет 397 пикселей.
по горизонтали, 294 пикселя по вертикали, и каждый пиксель содержит серый
значение из возможных 256 различных оттенков серого.
Цвет «глубина»
Каждый пиксель растрового изображения содержит определенную информацию, обычно интерпретируемую как информация о цвете. Информационное содержание всегда одинаково для всех пикселей в конкретном растровом изображении. Количество информации о цвете может быть все, что требует приложение, но есть некоторые стандарты, основные из них описаны ниже.
1 бит (черно-белый)Это наименьшее возможное информационное содержание, которое может храниться для каждого пиксель. Полученное растровое изображение называется монохромным или черно-белым. То пиксели с 0 считаются черными, пиксели с 1 называются белый. Обратите внимание, что хотя возможны только два состояния, их можно интерпретировать как любые два цвета, 0 отображается на один цвет, 1 отображается на другой цвет.
8-битные оттенки серогоВ этом случае каждый пиксель занимает 1 байт (8 бит) памяти, что дает 256 разные состояния.Если эти состояния отображаются на шкале оттенков серого от черного к белый растровое изображение считается изображением в оттенках серого. По соглашению 0 обычно черный и 255 белый. Уровни серого — это числа между ними, для Например, в линейной шкале 127 соответствует уровню серого 50 %.
В любом конкретном приложении диапазон значений серого может быть любым. чаще всего отображают уровни 0-255 на шкале 0-1, но некоторые программы отображают его на шкале 0-65535 (см. систему спецификации цвета Apple как пример).
24 бит RGBЭто следующий шаг от 8-битного серого, теперь каждому выделено 8 бит. красная, зеленая и синяя составляющие. В каждом компоненте значение 0 означает отсутствие вклад этого цвета, 255 относится к полностью насыщенному вкладу этого цвета. цвет. Поскольку каждый компонент имеет 256 различных состояний, всего 16777216 возможных цветов.
Эта идея цветового пространства RGB является фундаментальной концепцией компьютерной графики. В Пространство RGB любой цвет представлен в виде точки внутри цветового куба с ортогональные оси r,g,b.
Обратите внимание, что значения серого образуют прямую линию от черного к белому вдоль диагональ куба, r = g = b.
8-битный индексированный цветИндексированный цвет — это более экономичный способ хранения цветных растровых изображений без использования 3 байта на пиксель. Как и в 8-битных серых растровых изображениях, каждый пиксель имеет один байт. связано с ним только теперь значение в этом байте больше не является значением цвета но индекс в таблице цветов, называемой палитрой или таблицей цветов.
У такой системы индексации цветов есть ряд интересных особенностей.Если в изображении менее 256 цветов, то это растровое изображение будет того же качества, что и 24-битное растровое изображение, но его можно хранить с одной третью данных. Интересных эффектов окраски и анимации можно добиться, просто изменив палитре, это немедленно изменяет внешний вид растрового изображения и с тщательный дизайн может привести к преднамеренным изменениям внешнего вида битовая карта.
Распространенной операцией, уменьшающей размер больших 24-битных растровых изображений, является преобразование их в индексированный цвет с оптимизированной палитрой, то есть палитрой, которая лучше всего представляет цвета, доступные в растровом изображении.
4-битный индексированный цветЭто идентично 8-битному цвету, за исключением того, что теперь используется только половина байта, 4 бита. для индекса. Это поддерживает таблицу до 16 цветов.
32 бит RGB
Обычно это то же самое, что и 24-битный цвет, но с известным дополнительным 8-битным растровым изображением. как альфа-канал. Этот канал можно использовать для создания замаскированных областей или представлять прозрачность.
16 бит RGB
Как правило, это прямая система с 5 битами на компонент цвета. и 1-битный альфа-канал.
Разрешение
Разрешение — атрибут растрового изображения, необходимый при визуальном просмотре. или печать растровых изображений, потому что пиксели сами по себе не имеют явных размеров. Разрешение обычно указывается в пикселях на дюйм, но может любая другая единица измерения. Большинство процессов печати сохраняют количество пикселей на дюйм (DPI) по историческим причинам. На устройствах с nn прямоугольными пикселями разрешение может быть указано как два числа, горизонтальное и вертикальное разрешающая способность.
Концепция разрешения не зависит от информационного содержания растровое изображение очень важно, учитывая постоянную глубину цвета, тогда информация содержимое между разными растровыми изображениями связано только с количеством пикселей вертикально и горизонтально. Однако качество при отображении растрового изображения или печатный зависит от разрешения. Поскольку резолюция определяет размер пикселя, его также можно использовать для изменения размера всего изображения.
В качестве примера рассмотрим одно растровое изображение размером 200 пикселей по горизонтали и 100 пикселей. пикселей по вертикали.Если бы это растровое изображение было напечатано с разрешением 100 точек на дюйм, его размер был бы равен 2. дюймов на 1 дюйм. Однако если то же растровое изображение было напечатано с разрешением 200 DPI, то оно будет измерять только 1 дюйм на полдюйма.
Всякий раз, когда растровое изображение отображается на мониторе компьютера, разрешение должно быть обдуманный. Большинство компьютерных мониторов имеют диапазон разрешения от 60 точек на дюйм в низкое разрешение заканчивается 120DPI для дисплеев с высоким разрешением. как с печатным имеет значение, чем выше разрешение, тем менее заметна пиксельная природа изображения. битмап будет.
В качестве еще одного примера следующие два изображения идентичны по информации. контента, однако они имеют разное разрешение и, следовательно, разные пиксели. размеры. Меньшее — 80DPI, большее — 30DPI. пикселей гораздо больше видно в увеличенной версии.
Это еще не все, что касается представления растровых изображений на физическом носителе. устройств, потому что разные устройства имеют разные возможности глубины цвета.
Преобразование глубины цвета.
Очень часто необходимо представить растровое изображение с одной глубиной цвета на устройства с различной глубиной цвета.Конечно, если цель устройство имеет лучший цвет, чем растровое изображение, тогда нет проблем, поскольку растровое изображение может быть точно представлено. В обратной ситуации, когда назначение имеет другие и более низкие возможности, то растровое изображение должно быть преобразуется во что-то, что дает наилучшее возможное представление.
В качестве примера рассмотрим задачу представления изображений в оттенках серого на монохромные (черно-белые) устройства. Это достигается использованием переменной количество черных и белых пикселей для представления уровня серого.К счастью, черно-белое устройство обычно имеет гораздо более высокое разрешение, чем растровое изображение, поэтому есть несколько пикселей, доступных для создания аппроксимации оттенков серого. Рассмотрим растровое изображение в оттенках серого с разрешением 75 точек на дюйм, которое будет отображаться на черно-белом изображении с разрешением 300 точек на дюйм. принтер. Имеется матрица из черно-белых пикселей 4×4, которую можно использовать для представляют каждый пиксель в оттенках серого.
Существует ряд приемов, которые можно использовать для формирования соответствующих расположение черных и белых пикселей, один из методов называется дизерингом. Четное при использовании дизеринга существует множество возможных алгоритмов определения дизеринга. расположение пикселей. Ниже показано изменение уровня серого с соответствующие черно-белые примеры дизеринга (сильно увеличенные) с использованием паттерн и диффузионное сглаживание.
Как уже упоминалось, существуют и другие методы преобразования растровых изображений высокого разрешения. глубины цвета в те, которые имеют меньшую глубину цвета, но более высокое разрешение, на таких Технология, используемая в полиграфии, называется трафаретной печатью. Скрининг не будет обсуждаться здесь, за исключением того, что он аппроксимирует уровни серого различными размер объектов (размер объекта пропорционален уровню серого) объекты располагаются на регулярной матрице, расположенной под некоторым углом к горизонтальный.Наиболее часто используемыми объектами изображения являются точки, линии и прямоугольники. Ниже показано изменение уровня серого с соответствующим значением черного. и примеры с белым экраном (сильно увеличенные) с использованием точечных и линейных экранов.
Приведенное выше обсуждение и примеры преобразования глубины цвета были сделаны по отношению к изображениям в оттенках серого. Преобразование изображений с высокой глубиной цвета в изображения с низкой представление глубины цвета ничем не отличается по концепции, как правило, процесс выполняется три раза, по одному для каждого компонента цвета.
Хранилище растровых изображений
Самый простой способ сохранить растровое изображение — просто перечислить растровое изображение. информация, байт за байтом, строка за строкой. Файлы, сохраненные этим методом, часто называются RAW-файлами. Объем дискового пространства, необходимый для любого растрового изображения, легко определить. рассчитать с учетом размеров растрового изображения (N x M) и глубины цвета в битах (B). Формула для размера файла в килобайтах:
где N и M — количество пикселей по горизонтали и вертикали, B — количество бит на пиксель. В следующей таблице показаны размеры файлов нескольких растровых изображений. типов, если они хранятся в формате RAW.
размеры изображения глубина цвета размер файла 128 x 128 1 бит 2 КБ 8 бит 16 КБ 24 бита 48 КБ 256 x 256 1 бит 8 КБ 8 бит 64 КБ 24 бита 192 КБ 1K x 1K 1 бит 128 КБ 8 бит 1 МБ 24 бита 3 МБ
Как видно из этой таблицы, большие 24-битные изображения приведут к очень большим файлов, поэтому сжатие становится важным.Существует большое количество форматов файлов, используемых для хранения сжатых растровых изображений. от тривиального до очень сложного. Сложные форматы существуют, потому что очень больших растровых файлов, которые существовали бы, если бы не использовалось сжатие. Существует две широкие категории форматов сжатых файлов. без потерь (отлично сохраняют растровые изображения) и с потерями. То ниже показана основная иерархия методов сжатия.
Самый грубый способ уменьшить размер растровых файлов — уменьшить цвет. информации, это называется уменьшением битов или квантованием.Например один может преобразовывать 24-битные растровые изображения в 8-битные индексированные растровые изображения, используя дизеринг для имитировать потерянные цвета. На сегодняшний день наиболее распространенным форматом с потерями является JPEG. описание того, как это работает, выходит далеко за рамки этого обсуждения. Его Основным преимуществом является то, что он может предложить значительно лучшую степень сжатия, чем форматы без потерь. Например, рассмотрим следующее растровое изображение оригинала который составляет 500 x 350 пикселей при 24-битном цвете. Используя формулу, приведенную ранее, размер несжатого файла 500 x 350 x 24 / 8 / 1024 = 513 КБ
Сохраненный в оттенках серого (уменьшение битности) файл 171K (в 3 раза меньше),
сохранены и сжаты с использованием
RLE это 388К (75% от оригинала), сохранено с помощью
Сжатие LZW составляет 188K (36% от оригинала), при сохранении в формате JPEG это 30K (а
степень сжатия 17:1).
Ниже приводится описание простейшего метода сжатия без потерь.
называется кодированием длин серий
(RLE), который используется с хорошим эффектом для растровых изображений с
всего несколько цветов. Рассмотрим следующее маленькое 8-битное изображение размером 17 x 10 пикселей.
Если бы это было сохранено в форме RAW, потребовалось бы 16 байтов на строку для всех 10 ряды. Однако первые два ряда находятся на одном уровне, поэтому это более эффективно. чтобы просто сохранить количество одинаковых цветов в серии вместе с цветом серии. Первые две строки вместо 16 байтов требуют только 2 байта каждая.
В необработанном формате первые три строки будут
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0При использовании кодирования длин серий первые три строки будут равны
. 16 0 16 0 2 0 12 1 2 0
Хотя есть больше деталей, связанных с фактической реализацией RLE, чем описанный здесь, это основной принцип кодирования длин серий. Чтобы для RLE для достижения некоторой степени сжатия должны быть прогоны того же цвета, по этой причине он вряд ли будет полезен для сильно окрашенных изображения, такие как 24-битные фотографии.
Dirty Bitmaps and Incremental Backup — документация QEMU
Dirty Bitmaps — это объекты в памяти, которые отслеживают записи на блочные устройства. Они может использоваться в сочетании с различными операциями блочного задания для выполнения режимы инкрементного или дифференциального резервного копирования.
В этом документе объясняются концептуальные механизмы, а также актуальные, полная и исчерпывающая документация по API для управления ими. (Надеюсь, «почему», «что» и «как».)
Целевой аудиторией этого документа являются разработчики, добавляющие QEMU функции резервного копирования для приложений управления или опытных пользователей, которые запускают и администрировать QEMU напрямую через QMP.
Растровые изображения — это битовые векторы, в которых каждый бит «1» в векторе указывает на измененный («грязный») сегмент соответствующего блочного устройства. Размер сегмента отслеживается степень детализации растрового изображения. Если степень детализации растровое изображение имеет размер 64 КБ, каждый бит «1» означает, что область размером 64 КБ в целом может иметь каким-то образом изменился, возможно, всего на один байт.
Меньшая степень детализации означает более точное отслеживание измененных данных на диске, но требует больше вычислительных ресурсов и больших размеров растрового изображения.Больше гранулярность означает меньшие размеры растровых изображений, но менее целенаправленные резервные копии.
- Размер растрового изображения (в байтах) можно вычислить следующим образом:
-
размер
= ceil(ceil(image_size
/детализация
) / 8) - напр. размер растрового изображения с детализацией 64 КБ на изображении 2 ТБ:
-
размер
= ((2147483648К/64К)/8) - = 4194304Б = 4 МБ.
-
QEMU использует эти растровые изображения при создании инкрементных резервных копий, чтобы знать, какие разделы файла для копирования. Они не включены по умолчанию и должны быть явно добавлен для того, чтобы начать отслеживание записи.
Растровые изображения могут быть созданы в любое время и могут быть прикреплены к любому произвольному блоку узел в графе хранилища, но концептуально они наиболее полезны, когда присоединены к корневой узел, подключенный к модели гостевого устройства хранения.
То есть: вероятно, наиболее полезно отслеживать записи гостя на диск, но теоретически вы можете отслеживать такие вещи, как изменения метаданных qcow2, присоединение растрового изображения в другом месте графа хранилища.Это выходит за рамки этого документа.
QEMU поддерживает сохранение этих растровых изображений на диск в формате изображения qcow2. Растровые изображения, которые сохраняются или загружаются таким образом, называются «постоянными». тогда как растровые изображения, которые не являются «переходными».
QEMU также поддерживает миграцию как временных растровых изображений (отслеживание любых произвольный формат изображения) или постоянные растровые изображения (qcow2) с помощью динамической миграции.
QEMU поддерживает все описанные ниже функции в формате образа qcow2.
Однако qcow2 строго необходим только для функции сохраняемости, которая записывает растровые данные на диск при закрытии. Если настойчивость не требуется для для конкретного случая использования все функции растрового изображения, кроме сохраняемости, доступны для любой произвольный формат изображения.
Например, Dirty Bitmaps можно комбинировать с «сырым» форматом изображения, но любые изменения растрового изображения будут отменены при выходе.
Предупреждение
Переходные растровые изображения не будут сохраняться при выходе из QEMU! Настойчивый растровые изображения доступны только для изображений qcow2.
Растровым объектам нужен метод для ссылки на них в API. Все созданные API и управляемые растровые изображения имеют удобочитаемое имя, выбранное пользователем при создании время.
Имя растрового изображения уникально для узла, но растровые изображения, прикрепленные к разным узлы могут иметь одно и то же имя. Поэтому все растровые изображения адресуются через их (узел, имя) пара.
Имя созданного пользователем растрового изображения не может быть пустым («»).
Временные растровые изображения могут иметь имена Unicode JSON, которые фактически не длина ограничена.(Протокол QMP может ограничивать сообщения размером менее 64 МБ.)
Форматы постоянного хранения могут предъявлять собственные требования к именам растровых изображений. и пространства имен. В настоящее время только qcow2 поддерживает постоянные растровые изображения. Видеть docs/interop/qcow2.txt для более подробной информации об ограничениях. Примечательно:
- Имена растровых изображений qcow2 могут иметь длину от 1 до 1023 байт.
- Никакие два растровых изображения, сохраненные в одном и том же файле qcow2, не могут иметь одно и то же имя.
QEMU иногда использует растровые изображения для внутреннего использования, у которых нет имени. Они есть скрыты от вызовов запросов API, не могут манипулироваться внешним API, никогда не сохранялся и никогда не мигрировал.
Объекты Dirty Bitmap могут быть запрошены с помощью блока запроса команды QMP и видны через QAPI-структура BlockDirtyInfo.
Эта структура показывает имя, степень детализации и количество грязных байтов для каждого растрового изображения. Кроме того, он показывает несколько логических индикаторов состояния:
-
запись
: Это растровое изображение записывает запись. -
занято
: Это растровое изображение используется операцией. -
постоянный
: Это растровое изображение является постоянным типом. -
несогласованный
: Это растровое изображение повреждено и не может быть использовано.
Статус +busy
запрещает удаление, очистку или иное
изменение растрового изображения и происходит, когда растровое изображение используется для резервного копирования
работает или находится в процессе загрузки из миграции. Многие из
команды, описанные ниже, не будут работать с такими растровыми изображениями.
Статус +несовместимый
аналогично запрещает почти все операции,
в частности, разрешена только операция block-dirty-bitmap-remove
.
Существует также устаревшее поле состояния
типа DirtyBitmapStatus. Растровое изображение исторически имело
пять видимых состояний:
Frozen
: Это растровое изображение в настоящее время используется операцией и неизменный. Его нельзя удалить, переименовать, сбросить и т. д.(Теперь это
+ занят
.)
Отключено
: Это растровое изображение не записывает новые записи.(Теперь это
-запись -занято
.)
Active
: Это растровое изображение записывает новые записи.(Теперь это
+запись-занято
.)
Заблокировано
: Это растровое изображение используется операцией и является неизменяемым. Отличие от «Холодного сердца» заключалось прежде всего в деталях реализации.(Теперь это
+ занят
.)
Несоответствие
: это постоянное растровое изображение не было сохранено на диск правильно и больше не может использоваться. Остается в памяти служить показатель неудачи.(теперь это
+ противоречивый
.)
Эти состояния напрямую заменяются индикаторами состояния и не должны
использовал. Разница между Frozen
и Locked
заключается в реализации
подробно и не должно иметь отношения к внешним пользователям.
Основной интерфейс для управления растровыми объектами — через QMP. интерфейс. Если вы не знакомы, см. docs/interop/qmp-intro.txt для получения более подробной информации. обзор и qemu-qmp-ref для полной справки по всем Команды QMP.
Поддерживаемые команды
Существует шесть основных команд API управления растровыми изображениями:
-
блок-грязный-растровый-добавить
-
блок-грязный-растровое-удалить
-
блок-грязный-растровый-очистить
-
блок-грязный-растровый-отключить
-
блочное грязное растровое изображение
-
блочное грязное растровое слияние
И одна связанная команда запроса:
Создание: блок-грязный-битмап-добавить
блок-грязный растровый-добавить:
Создает новое растровое изображение, которое отслеживает записи в указанный узел. детализация, постоянство и состояние записи можно настроить во время создания.
Пример
для создания нового постоянного растрового изображения с активной записью:
-> { "выполнить": "блок-грязный-растровый-добавить", "аргументы": { "узел": "диск0", "имя": "битмап0", «постоянный»: правда, } } <- { "возврат": {} }
- Это растровое изображение будет иметь степень детализации по умолчанию, которая соответствует размеру кластера связанный с ним диск, если он доступен, ограничен между [4KiB, 64KiB].То текущее значение по умолчанию для qcow2 составляет 64 КБ.
Пример
Для создания нового отключенного ( -запись
) временного растрового изображения, которое отслеживает
изменений в сегментах по 32 КБ:
-> { "выполнить": "блок-грязный-растровый-добавить", "аргументы": { "узел": "диск0", "имя": "битмап1", "зернистость": 32768, "отключено": правда } } <- { "возврат": {} }
Удаление: блок-грязный-растровый-удалить
блок-грязный-растровое-удалить:
Удаляет растровое изображение. Растровые изображения с кодом +busy
не могут быть удалены.
- Удаление растрового изображения не влияет на другие растровые изображения, прикрепленные к тому же узел, а также не влияет на какие-либо резервные копии, уже созданные из этого растрового изображения или узел.
- Поскольку растровые изображения уникальны только для узла, к которому они присоединены, здесь также необходимо указать имя узла/диска.
- При удалении постоянного растрового изображения оно будет удалено из файла qcow2.
Пример
Удалить растровое изображение с именем bitmap0
из узла drive0
:
-> { "выполнить": "блок-грязный-растровое-удалить", "аргументы": { "узел": "диск0", "имя": "битмап0" } } <- { "возврат": {} }
Сброс: блок-грязный-растровый-очистить
блок-грязный-растровый-очистить:
Удаляет все грязные биты из растрового изображения. +busy
Растровые изображения не могут быть очищены.
- Инкрементная резервная копия, созданная из пустого растрового изображения, не будет копировать данные, как если бы ничего не изменилось.
Пример
Очистить все грязные биты из растрового изображения bitmap0
на узле drive0
:
-> { "выполнить": "блок-грязный-растровый-очистить", "аргументы": { "узел": "диск0", "имя": "битмап0" } } <- { "возврат": {} }
Включение: блокировать грязные растровые изображения
блок-грязный-растровый-включить:
«Включает» растровое изображение, устанавливая для бита записи
значение true, что приводит к записи в
начинают записываться. +busy
Растровые изображения не могут быть включены.
- Растровые изображения по умолчанию включаются при создании, если не указано иное.
- Постоянные растровые изображения будут помнить свой статус
+запись
при нагрузка.
Пример
Установить +запись
на растровое изображение растровое изображение0
на узел диск0
:
-> { "выполнить": "включить блокировку грязных растровых изображений", "аргументы": { "узел": "диск0", "имя": "битмап0" } } <- { "возврат": {} }
Включение: блокировка грязного растрового изображения
блок-грязный-растровый-отключить:
«Отключает» растровое изображение, устанавливая бит записи
в значение false, что приводит к дальнейшему
пишет, что начинает игнорироваться. +busy
Растровые изображения не могут быть отключены.
Предупреждение
Это потенциально опасно: QEMU не пытается остановить запись, если
на узле есть отключенные растровые изображения, и не будет помечать отключенные растровые изображения
как + противоречивый
, если такие записи действительно происходят. Бэкапы, сделанные из таких
растровые изображения нельзя будет использовать для восстановления связного изображения.
- Отключение растрового изображения может быть полезно для проверки того, какие сектора диска изменены в течение определенного периода времени или для явного управления дифференциальные окна резервного копирования.
- Постоянные отключенные растровые изображения будут помнить свой
-recording
статус на нагрузка.
Пример
Установить -запись
на растровое изображение bitmap0
на узел drive0
:
-> { "выполнить": "блок-грязный-растровый-отключить", "аргументы": { "узел": "диск0", "имя": "битмап0" } } <- { "возврат": {} }
Слияние, копирование: блочное-грязное-растровое-слияние
блочное грязное растровое слияние:
Объединяет одно или несколько растровых изображений в целевое растровое изображение. Для любого грязного сегмента в любом исходном растровом изображении целевое растровое изображение помечает этот сегмент как грязный.
- Слияние берет одно или несколько растровых изображений в качестве источника и объединяет их вместе в один пункт назначения, так что любой сегмент, отмеченный как грязный в любом источнике растровые изображения будут помечены как грязные в целевом растровом изображении.
- Слияние не создает целевое растровое изображение, если оно не существует. Бланк растровое изображение может быть создано заранее для достижения того же эффекта.
- Место назначения не очищается перед слиянием, поэтому последующее слияние операции продолжат кумулятивно помечать больше сегментов как грязные.
- Если операция слияния завершится ошибкой, растровое изображение назначения гарантированно быть немодифицированным. Операция может завершиться ошибкой, если растровые изображения источника или назначения заняты или имеют разную степень детализации.
- Растровые изображения можно объединять только на одном узле. Есть только один «узел» аргумент, поэтому все растровые изображения должны быть прикреплены к одному и тому же узлу.
- Копирование может быть достигнуто путем слияния из одного источника в пустой назначения.
Пример
Объединить данные из bitmap0
в растровое изображение new_bitmap
на узле диск0
.Если new_bitmap
было пустым до этой команды, это достигается
копия.
-> { "выполнить": "блочное-грязное-растровое-слияние", "аргументы": { "узел": "диск0", "цель": "new_bitmap", "растровые изображения": [ "битмап0" ] } } <- { "возврат": {} }
Запрос: запрос-блок
запрос-блок:
Не совсем команда растровых изображений, но возвращает информацию о любых растровых изображениях подключен к узлам, выступающим в качестве корня для гостевых устройств.
- Бит «несоответствие» не появится, если он ложный, появится только тогда, когда значение true указывает на наличие проблемы.
Пример
Запрос блочной подсистемы QEMU. Следующий json обрезан неактуально
ключи из ответа, чтобы выделить только те части ответа, которые относятся к растровому изображению.
API. Этот результат выделяет растровое изображение bitmap0
, прикрепленное к корневому узлу
устройство диск0
.
-> { "выполнить": "запрос-блок", "аргументы": {} } <- { "возвращение": [ { "грязные растровые изображения": [ { "статус": "активный", "количество": 0, "занят": ложь, "имя": "битмап0", "постоянный": ложь, "запись": правда, "зернистость": 65536 } ], "устройство": "диск0", } ] }
Как указано в Поддерживаемых форматах изображений, QEMU может сохранять растровые изображения в qcow2.
файлы.Продемонстрировано при создании: блок-грязный-битмап-добавление, прохождение постоянный: true
to block-dirty-bitmap-add
сохранит это растровое изображение в
диск.
Постоянные растровые изображения будут автоматически загружаться в память при загрузке, и будет записан обратно на диск после закрытия. Их использование должно быть в основном прозрачный.
Однако, если QEMU не сможет корректно закрыть файл, растровое изображение
будет помечен как + противоречивый
при следующей загрузке и будет считаться небезопасным для использования
для любой операции.На данный момент единственной допустимой операцией с такими растровыми изображениями является блок-грязный-растровый-удалить
.
Потеря растрового изображения таким образом не делает недействительными существующие резервные копии, которые был сделан из этого растрового изображения, но дальнейшие резервные копии не могут быть выпущены для этой цепи.
Транзакции — это функция QMP, позволяющая отправлять несколько команд QMP. сразу, будучи гарантированным, что все они добьются успеха или потерпят неудачу атомарно, вместе. Ниже показано взаимодействие растровых изображений и транзакций.
См. транзакцию в справочнике QMP Больше подробностей.
Обоснование
Растровые изображения обычно можно изменить в любое время, но некоторые операции часто имеет смысл только в сочетании с другими командами. Когда виртуальная машина приостановлена, легко убедиться, что гостевая запись не происходит между отдельными QMP. команды. Когда виртуальная машина работает, это трудно сделать с помощью отдельные команды QMP, которые могут разрешить гостевую запись между каждым команда.
Например, используя только отдельные команды QMP, мы могли бы:
- Загрузите виртуальную машину в состоянии паузы.
- Создайте полную резервную копию диска drive0.
- Создайте новое растровое изображение, прикрепленное к диску 0, будучи уверенным, что ничего не было тем временем записывается на drive0.
- Возобновить выполнение виртуальной машины.
- Позже создайте добавочные резервные копии из
bitmap0
.
В этот момент растровое изображение и резервная копия диска будут правильно синхронизированы, и инкрементные резервные копии, сделанные с этого момента, будут правильно выровнены по полная резервная копия диска.
Это не особенно полезно, если мы решили, что хотим начать инкрементный резервные копии после того, как виртуальная машина проработала какое-то время, для чего мы хотели бы выполнить такие действия, как следующие:
- Загрузите виртуальную машину и начните выполнение.
- Используя одну транзакцию, выполните следующие операции:
- Создайте
bitmap0
. - Создать полную резервную копию диска
drive0
.
- Создайте
- Позже создайте добавочные резервные копии из
bitmap0
.
Примечание
В связи с тем, что если bitmap0
создается до полного
резервное копирование диска, добавочные резервные копии все еще могут быть созданы из этого
растровое изображение, но они будут копировать дополнительные сегменты, отражающие записи, которые
произошло до операции резервного копирования.Транзакции позволяют нам
сузить критические точки во времени, чтобы уменьшить количество отходов, или, с другой стороны,
направлении, чтобы ни один сегмент не был пропущен.
Поддерживаемые растровые транзакции
-
блок-грязный-растровый-добавить
-
блок-грязный-растровый-очистить
-
блочное грязное растровое изображение
-
блок-грязный-растровый-отключить
-
блочное грязное растровое слияние
Использование этих команд идентично их соответствующим командам QMP, но смотрите разделы ниже для конкретных примеров.
Инкрементальные резервные копии — это просто частичные образы дисков, которые можно комбинировать с другие частичные образы дисков поверх базового образа для восстановления полной резервной копии с момента создания инкрементной резервной копии.
«Модель проталкивания» здесь ссылается на тот факт, что QEMU «проталкивает» модифицированный блокирует пункт назначения. Мы будем использовать команду QMP blockdev-backup для создания обоих полные и инкрементные резервные копии.
Команда является фоновым заданием, которое имеет собственный API QMP для запросов и управление задокументировано в фоновых заданиях.
Пример: новая точка привязки инкрементного резервного копирования
Как указано в разделе «Транзакции — Обоснование», возможно, мы хотим создать новую цепочку инкрементных резервных копий, прикрепленную к диску.
В этом примере создается новая полная резервная копия «drive0» и новое пустое растровое изображение, которое записывает записи с этого момента времени вперед.
Цель может быть создана с помощью команды blockdev-add или blockdev-create.
Примечание
Любые новые записи, происходящие после выполнения этой команды, даже если задание резервного копирования запускается, будет записано локально, а не в резервную копию назначения.Эти записи будут записаны в растровое изображение соответственно.
-> { "выполнить": "транзакция", "аргументы": { "действия": [ { "type": "блок-грязный-растровый-добавить", "данные": { "узел": "диск0", "имя": "битмап0" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск0", "цель": "цель0", "синхронизация": "полная" } } ] } } <- { "возврат": {} } <- { "отметка времени": { «секунды»: 1555436945, «микросекунды»: 179620 }, "данные": { "статус": "создано", "идентификатор": "диск0" }, "событие": "JOB_STATUS_CHANGE" } . .. <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } <- { "отметка времени": {...}, "данные": { "статус": "завершено", "идентификатор": "диск0" }, "событие": "JOB_STATUS_CHANGE" } <- { "отметка времени": {...}, "данные": { "статус": "нулевой", "идентификатор": "диск0" }, "событие": "JOB_STATUS_CHANGE" }
Полное объяснение семантики перехода задания и JOB_STATUS_CHANGE события выходят за рамки этого документа и будут опущены во всех последующие примеры; выше для краткости опущено еще несколько событий.
Примечание
В последующих примерах будут пропущены все события, кроме BLOCK_JOB_COMPLETED. за исключением случаев, когда это необходимо для иллюстрации различий в рабочем процессе.
Пропущенные события и объекты json будут представлены многоточием: . ..
Пример: сброс точки привязки инкрементного резервного копирования
Если мы хотим начать новую цепочку резервных копий с существующим растровым изображением, мы также можем используйте транзакцию для сброса растрового изображения при создании новой полной резервной копии:
-> { "выполнить": "транзакция", "аргументы": { "действия": [ { "type": "блочный-грязный-растровый-очистить", "данные": { "узел": "диск0", "имя": "битмап0" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск0", "цель": "цель0", "синхронизация": "полная" } } ] } } <- { "возврат": {} } ... <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } . ..
Результат этого примера идентичен первому, но мы очищаем существующий растровое изображение вместо добавления нового.
Наконечник
В обоих этих примерах «bitmap0» концептуально привязан к создание новых, полных резервных копий. Эта связь не сохраняется или запомнился QEMU; это зависит от оператора или уровня управления запомнить, какие растровые изображения связаны с какими резервными копиями.
Пример: первое добавочное резервное копирование
Создать полную резервную копию и синхронизировать ее с грязным растровым изображением любым способом:
- Любой из двух методов динамического резервного копирования, продемонстрированных выше,
- Использование команд QMP с приостановленной виртуальной машиной, как в разделе «Обоснование», или
- Когда виртуальная машина находится в автономном режиме, вручную скопируйте образ и запустите виртуальную машину в режиме паузы. состояние, будьте осторожны, чтобы добавить новое растровое изображение до того, как виртуальная машина начнет выполнение.
Какой бы метод ни был выбран, предположим, что в конце этого шага:
- Полная резервная копия называется
drive0.полный.qcow2
. - Созданное нами растровое изображение называется
bitmap0
, прикрепленным кdrive0
.
Создайте целевой образ для добавочной резервной копии, использующий полная резервная копия в качестве резервного изображения.
- Предположим, что новый инкрементный образ называется
drive0.inc0.qcow2
:
$ qemu-img создать -f qcow2 диск0.inc0.qcow2 \ -b диск0.полный.qcow2 -F qcow2
- Предположим, что новый инкрементный образ называется
Добавить узел целевого блока:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "диск0.inc0.qcow2" } } } <- { "возврат": {} }
Выполните команду добавочного резервного копирования:
-> { «выполнить»: «резервное копирование blockdev», "аргументы": { "устройство": "диск0", "битмап": "битмап0", "цель": "цель0", «синхронизация»: «инкрементная» } } <- { "возврат": {} } . .. <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ...
Копирует все блоки, измененные с момента создания полной резервной копии, в файл drive0.inc0.qcow2
. Во время операции помечается bitmap0
+ занят
. Если операция выполнена успешно, bitmap0
будет очищен до
отражают «инкрементный» режим резервного копирования, который копирует только новые изменения
из каждой инкрементной резервной копии.
Примечание
Любые новые записи, происходящие после начала операции резервного копирования, не скопировать в место назначения.«Момент времени» резервной копии — это когда резервное копирование начинается, а не когда оно заканчивается. Эти записи записываются в специальное растровое изображение, которое повторно добавляется в bitmap0, когда резервное копирование заканчивается, поэтому что следующая инкрементная резервная копия может их скопировать.
Пример: Второе добавочное резервное копирование
Создайте новый образ назначения для добавочной резервной копии, который указывает на предыдущий, например:
drive0.inc1.qcow2
$ qemu-img create -f qcow2 диск0.inc1.qcow2 \ -b диск0.inc0.qcow2 -F qcow2
Добавить узел целевого блока:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "drive0.inc1.qcow2" } } } <- { "возврат": {} }
Введите новую команду добавочного резервного копирования. Единственная разница здесь в том, что мы изменили целевое изображение ниже.
-> { «выполнить»: «резервное копирование blockdev», "аргументы": { "устройство": "диск0", "битмап": "битмап0", "цель": "цель0", «синхронизация»: «инкрементная» } } <- { "возврат": {} } . .. <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ...
Поскольку первое инкрементное резервное копирование из предыдущего примера завершено
успешно, bitmap0
был синхронизирован с drive0.inc0.qcow2
. Здесь,
мы снова используем bitmap0
, чтобы создать новую инкрементную резервную копию, нацеленную на
предыдущий, создающий цепочку из трех изображений:
Диаграмма
+-------------------+ +-------------------+ +------ -------------+ | диск0.полный.qcow2 |<--| диск0.inc0.qcow2 |<--| диск0.inc1.qcow2 | +-------------------+ +-------------------+ +------- ------------+
Каждая новая инкрементная резервная копия повторно синхронизирует растровое изображение с последней резервной копией. создано, что позволяет пользователю продолжать «использовать» его для создания новых резервных копий на вершина существующей цепочки.
На приведенной выше диаграмме ни drive0.inc1.qcow2, ни drive0.inc0.qcow2 не полные изображения сами по себе, но полагаются на их резервную цепочку для восстановления полное изображение.Зависимость прекращается с каждым полным резервным копированием.
Каждая резервная копия в этой цепочке остается независимой и не изменяется новыми записями сделано позже в цепочке. Например, drive0.inc0.qcow2 остается совершенно действительная резервная копия диска, какой она была на момент создания этой резервной копии.
Пример: инкрементное принудительное резервное копирование без резервных файлов
Образы резервных копий лучше хранить вне офиса, поэтому у нас часто не будет предыдущего резервные копии в цепочке, доступные для ссылки. Это не проблема при резервном копировании время; мы просто не устанавливаем фоновое изображение при создании адресата изображение:
Создайте новый целевой образ без набора резервных файлов.Нам нужно будет укажите размер базового образа, так как резервный файл не доступный для QEMU, чтобы использовать его для определения.
$ qemu-img создать -f qcow2 диск0.inc2.qcow2 64G
Примечание
В качестве альтернативы можно не указывать режим
: "существующий"
из push-уведомлений. команды резервного копирования, чтобы QEMU создал образ без поддержки файл для вас, но вы теряете контроль над параметрами формата, такими как совместимость и предварительные настройки.Добавить узел целевого блока:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "диск0.inc2.qcow2" } } } <- { "возврат": {} }
Введите новую команду добавочного резервного копирования. Помимо нового пункта назначения изображение, нет никакой разницы с двумя последними примерами.
-> { «выполнить»: «резервное копирование blockdev», "аргументы": { "устройство": "диск0", "битмап": "битмап0", "цель": "цель0", «синхронизация»: «инкрементная» } } <- { "возврат": {} } . .. <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ...
Единственное отличие с точки зрения пользователя состоит в том, что вам нужно будет установить фоновый образ при попытке восстановить резервную копию:
$ qemu-img перебазировать диск0.inc2.qcow2 \ -u -b диск0.inc1.qcow2
Это использует «небезопасный» режим перебазирования, чтобы просто установить резервный файл в файл что нету.
Также можно использовать --image-opts
, чтобы указать всю подложку
вручную как эфемерное свойство во время выполнения, но это выходит за рамки
объем этого документа.
Пример: Инкрементальное резервное копирование на несколько дисков
Предположим, у нас есть виртуальная машина с двумя дисками, «drive0» и «drive1», и мы хотим обе они подняты таким образом, что две резервные копии представляют собой один и тот же устойчивый к сбоям момент времени.
Для каждого диска создайте пустой образ:
$ qemu-img create -f qcow2 drive0.full.qcow2 64G $ qemu-img создать -f qcow2 drive1.full.qcow2 64G
Добавить узлы целевых блоков:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "диск0.полный.qcow2" } } } <- { "возврат": {} } -> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель1", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "drive1.full.qcow2" } } } <- { "возврат": {} }
Создание полной (якорной) резервной копии для каждого диска с сопутствующими растровыми изображениями:
-> { "выполнить": "транзакция", "аргументы": { "действия": [ { "type": "блок-грязный-растровый-добавить", "данные": { "узел": "диск0", "имя": "битмап0" } }, { "type": "блок-грязный-растровый-добавить", "данные": { "узел": "диск1", "имя": "битмап0" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск0", "цель": "цель0", "синхронизация": "полная" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск1", "цель": "цель1", "синхронизация": "полная" } } ] } } <- { "возврат": {} } . .. <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ... <- { "отметка времени": {...}, "данные": { "устройство": "диск1", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ...
Позже создайте новые целевые образы для каждой инкрементной резервной копии. которые указывают на их соответствующие полные резервные копии:
$ qemu-img create -f qcow2 диск0.inc0.qcow2 \ -b диск0.полный.qcow2 -F qcow2 $ qemu-img создать -f qcow2 диск1.inc0.qcow2 \ -b диск1.полный.qcow2 -F qcow2
Добавить узлы целевых блоков:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "drive0. inc0.qcow2" } } } <- { "возврат": {} } -> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель1", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "диск1.inc0.qcow2" } } } <- { "возврат": {} }
Выполнить транзакцию инкрементного принудительного резервного копирования с несколькими дисками:
-> { "выполнить": "транзакция", "аргументы": { "действия": [ { «type»: «резервное копирование блоков», "данные": { "устройство": "диск0", "битмап": "битмап0", «синхронизация»: «инкрементная», "цель": "цель0" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск1", "битмап": "битмап0", «синхронизация»: «инкрементная», "цель": "цель1" } }, ] } } <- { "возврат": {} } . .. <- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ... <- { "отметка времени": {...}, "данные": { "устройство": "диск1", "тип": "резервная копия", "скорость": 0, "лен": 68719476736, "смещение": 68719476736 }, "событие": "BLOCK_JOB_COMPLETED" } ...
В случае ошибки, возникающей после успешного выполнения задания принудительного резервного копирования
запущенный либо отдельной командой QMP, либо транзакцией QMP, пользователь
получит событие BLOCK_JOB_COMPLETE
с сообщением об ошибке,
сопровождается событием BLOCK_JOB_ERROR
.
В случае отмены задания пользователь получит Событие BLOCK_JOB_CANCELLED
вместо пары COMPLETE и ERROR
Мероприятия.
В любом случае сбоя битовая карта, используемая для сбойной операции, не очищено. Он будет содержать все грязные биты, которые он сделал в начале операция плюс любые новые биты, которые были отмечены во время операции.
По сути, «момент времени», когда растровое изображение записывает различия против сохраняется при выпуске последней успешной инкрементной резервной копии, вместо того, чтобы двигаться вперед к началу этой неудачной резервной копии.
После устранения основной проблемы (например, выделено больше места для хранения в месте назначения) команду инкрементного резервного копирования можно повторить с помощью то же растровое изображение.
Пример: отдельные отказы
Задания инкрементного принудительного резервного копирования, которые не работают по отдельности, ведут себя так же, как описано выше. Этот пример демонстрирует случай сбоя одного задания:
Создать целевой образ:
$ qemu-img create -f qcow2 диск0.inc0.qcow2 \ -b диск0.полный.qcow2 -F qcow2
Добавить узел целевого блока:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "drive0. inc0.qcow2" } } } <- { "возврат": {} }
Попытка создать инкрементную резервную копию через QMP:
-> { «выполнить»: «резервное копирование blockdev», "аргументы": { "устройство": "диск0", "битмап": "битмап0", "цель": "цель0", «синхронизация»: «инкрементная» } } <- { "возврат": {} }
Получение пары событий, указывающих на сбой:
<- { "отметка времени": {...}, "данные": { "устройство": "диск0", "действие": "отчет", "операция": "запись" }, "событие": "BLOCK_JOB_ERROR" } <- { "отметка времени": {...}, "данные": { "скорость": 0, "смещение": 0, "лен": 67108864, "error": "На устройстве не осталось места", "устройство": "диск0", "тип": "резервная копия" }, "событие": "BLOCK_JOB_COMPLETED" }
Удалить целевой узел:
-> { «выполнить»: «блокдев-дель», "аргументы": { "имя-узла": "цель0", } } <- { "возврат": {} }
Удалите неудачный образ и создайте его заново.
$ rm drive0.inc0.qcow2 $ qemu-img создать -f qcow2 диск0.inc0.qcow2 \ -b диск0.полный.qcow2 -F qcow2
Добавить узел целевого блока:
-> { "выполнить": "blockdev-добавить", "аргументы": { "имя-узла": "цель0", "драйвер": "qcow2", "файл": { "драйвер": "файл", "имя файла": "drive0.inc0.qcow2" } } } <- { "возврат": {} }
Повторите команду после устранения основной проблемы, такой как освобождение места на резервном томе:
-> { «выполнить»: «резервное копирование blockdev», "аргументы": { "устройство": "диск0", "битмап": "битмап0", "цель": "цель0", «синхронизация»: «инкрементная» } } <- { "возврат": {} }
Получение подтверждения об успешном завершении задания:
<- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 67108864, "смещение": 67108864 }, "событие": "BLOCK_JOB_COMPLETED" }
Пример: частичные сбои транзакции
команды QMP, такие как blockdev-backup концептуально только запускать задание, поэтому транзакции, содержащие эти команды может завершиться успешно, даже если задание, созданное им позднее, завершится сбоем. Это может удивить взаимодействия с представлениями о том, как должна вести себя «транзакция».
Это различие означает, что иногда транзакция, содержащая такое задание, команды запуска могут казаться успешными и возвращать успех, но позже отдельные задания, связанные с транзакцией, могут завершиться ошибкой. Возможно, что приложению управления, возможно, придется иметь дело с частичным сбоем резервного копирования после «успешная» сделка.
Если в одной транзакции указано несколько заданий резервного копирования, если одно из них заданий не удается, оно никак не будет взаимодействовать с другими заданиями резервного копирования. дефолт.Выполненное(ые) задание(я) очистит грязное растровое изображение, связанное с операция, но задание(я), которое не удалось выполнить, не будет выполнено. Поэтому не безопасно чтобы удалить все добавочные резервные копии, которые были успешно созданы в этом сценарий, даже если другие потерпели неудачу.
В этом примере показана транзакция с двумя заданиями резервного копирования, одно из которых завершается сбоем. и один преуспевает:
Выполните транзакцию, чтобы начать резервное копирование обоих дисков.
-> { "выполнить": "транзакция", "аргументы": { "действия": [ { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск0", "битмап": "битмап0", «синхронизация»: «инкрементная», "цель": "цель0" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск1", "битмап": "битмап0", «синхронизация»: «инкрементная», "цель": "цель1" } }] } }
Получить уведомление о том, что Транзакция принята, а задания запущено:
Получить уведомление о завершении первого задания:
<- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 67108864, "смещение": 67108864 }, "событие": "BLOCK_JOB_COMPLETED" }
Получение уведомления о сбое второго задания:
<- { "отметка времени": {. ..}, "данные": { "устройство": "диск1", "действие": "отчет", "операция": "читать" }, "событие": "BLOCK_JOB_ERROR" } ... <- { "отметка времени": {...}, "данные": { "скорость": 0, "смещение": 0, "лен": 67108864, "error": "Ошибка ввода/вывода", "устройство": "диск1", "тип": "резервная копия" }, "событие": "BLOCK_JOB_COMPLETED" }
В завершение приведенного выше примера drive0.inc0.qcow2
действителен и
необходимо сохранить, но drive1.inc0.qcow2
является неполным и должен быть
удален. Если инкрементное резервное копирование всех дисков на определенный момент времени для всей ВМ
необходимо сделать новые резервные копии для обоих дисков, принимая во внимание
учетную запись, что новая инкрементная резервная копия для диска 0 должна быть основана на диск0.inc0.qcow2
.
Для этого примера была создана инкрементная резервная копия для drive0
, но не
для привод1
. Последняя резервная копия, устойчивая к сбоям для всей ВМ, доступная в
в этом случае полная резервная копия:
[диск0.полный.qcow2] <-- [drive0.inc0.qcow2] [диск1.полный.qcow2]
Чтобы исправить это, создайте новую добавочную резервную копию на обоих дисках. Результат будут цепочки резервных копий, похожие на следующие:
[drive0.full.qcow2] <-- [drive0.inc0.qcow2] <-- [drive0.inc1.qcow2] [drive1.full.qcow2] <-------------------------- [drive1.inc1.qcow2]
Пример: групповой режим завершения
Хотя задания, запускаемые транзакциями, обычно завершаются или завершаются с ошибкой по отдельности, можно поручить им выполнить задание или провалиться вместе как группа.QMP транзакции принимают необязательную структуру свойств, которая может повлиять на поведение сделки.
Свойство транзакции режима завершения
может быть либо индивидуальным
что является устаревшим поведением по умолчанию, описанным выше, или сгруппировано
, подробно
ниже.
В режиме завершения сгруппировано
ни одно задание не будет сообщать об успешном выполнении до тех пор, пока все задания не будут завершены.
готов сообщить об успехе. В случае сбоя какого-либо задания все остальные задания будут отменены.
Независимо от того, произошел ли сбой участвующего задания инкрементного резервного копирования или отменены, связанные с ними растровые изображения будут храниться в их существующих моменты времени, как и в отдельных случаях отказа.
Вот тот же сценарий резервного копирования с несколькими дисками из примера: частичное
Сбои транзакций, но со свойством режима завершения сгруппировано
.
применено:
Выполните транзакцию инкрементного резервного копирования с несколькими дисками:
-> { "выполнить": "транзакция", "аргументы": { "характеристики": { "режим завершения": "сгруппировано" }, "действия": [ { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск0", "битмап": "битмап0", «синхронизация»: «инкрементная», "цель": "цель0" } }, { «type»: «блок-разработчик-резервная копия», "данные": { "устройство": "диск1", "битмап": "битмап0", «синхронизация»: «инкрементная», "цель": "цель1" } }] } }
Получить уведомление о том, что Транзакция принята и задания запущены:
Получение уведомления о сбое задания резервного копирования для
drive1
:<- { "отметка времени": {. ..}, "данные": { "устройство": "диск1", "действие": "отчет", "операция": "читать" }, "событие": "BLOCK_JOB_ERROR" } <- { "отметка времени": {...}, "данные": { "скорость": 0, "смещение": 0, "лен": 67108864, "error": "Ошибка ввода/вывода", "устройство": "диск1", "тип": "резервная копия" }, "событие": "BLOCK_JOB_COMPLETED" }
Получение уведомления об отмене задания для
drive0
:<- { "отметка времени": {...}, "данные": { "устройство": "диск0", "тип": "резервная копия", "скорость": 0, "лен": 67108864, "смещение": 16777216 }, "событие": "BLOCK_JOB_CANCEELLED" }
По завершении этого примера оба задания были прерваны из-за отказ. Оба целевых изображения должны быть удалены и больше не используются.
Транзакция в целом может быть просто перевыпущена позже.
определение растровых изображений по The Free Dictionary
Указанное количество комбинаций относится к растровому изображению размером 100 x 100 пикселей, в то время как для больших растровых изображений это число экспоненциально увеличивается, поскольку большее количество битов может использоваться для сокрытия информации.В этом подразделе мы объясняем, как обновляются растровые изображения при вставке или удалении префикса. Другие интересные новые функции включают события FrameLabel, теперь можно изменить качество отдельных растровых изображений с поддержкой Bitmap.drawWithQuality, вернулся выпуск вне события мыши и, наконец, , Flash Player теперь поддерживает собственное кодирование растровых данных в форматы PNG, JPEG и JPEG XR. Автоматическое сопряжение страниц после RIP объединяет одностраничные растровые изображения в соответствии с конкретным описанием публикации и соглашением об именах для объединения страниц или коммерческого наложения.Третий раздел содержит 24 статьи об инструментах и технологиях, включая методы визуализации, индексирование с помощью растровых изображений и интеллектуальный анализ данных мобильных пользователей. Решение Inovys Silicon Debug Solution представляет собой набор инструментов, предназначенных для обнаружения и диагностики дефектов путем сопоставления электрических сбоев с физическими дефектами с помощью логики. растровые изображения. Он объединяет программное обеспечение Inovys Faultlnsyte Software с системой тестирования SOC V93000 для поиска трудноуловимых неисправностей, когда сложные устройства SOC все еще находятся в тестере.* Gorel PowerTRACE X4 для преобразования растровых изображений и устаревших бумажных документов в векторную графику.Простая в использовании программная утилита на базе ПК позволяет пользователю загружать растровые изображения, настраиваемые шрифты, значки и графику. Таблица цветов, определяемая как массив структур RGBQUAD, содержит столько элементов, сколько цветов в растровом изображении. Таблица цветов отсутствует для растровых изображений с 24 цветовыми битами, поскольку каждый пиксель представлен 24-битными значениями красного, зеленого и синего цветов (RGB) в фактической области данных растрового изображения. Для максимальной эффективности производства этикетировщик 620 можно подключить к Сетевая система AEW Delford Mercury, позволяющая передавать форматы этикеток, растровые изображения и шрифты на высокой скорости через соединение Ethernet.Функции, которые считаются наиболее важными для этапа 0,5, были «Сохранить» и «Экспорт» дизайнов в виде растровых изображений. Ряд дополнительных функций также был завершен после версии 0.4, в том числе следующие: Новая версия ArtCAM также может хранить несколько растровых изображений, относящихся к одной и той же модели, поэтому изображение, используемое для построения формы, может храниться независимо от изображения, используемого для рендеринга. готовая модель.Замена растровых изображений по умолчанию
По умолчанию древовидные виджеты используют растровые изображения папки и отдельного листа бумаги в качестве значков, представляющих ветви и конечные узлы в иерархии древовидных виджетов.Вы можете изменить внешний вид виджета дерева, указав собственное растровое изображение для данного узла. Установите для ключевого слова BITMAP значение WIDGET_TREE, равное массиву 16 x 16 x 3, содержащему 24-битное цветное изображение.
Например, предположим, что у вас есть значок TrueColor размером 16 x 16 пикселей, сохраненный в файле TIFF. Следующие команды делают изображение значком, используемым для корневого узла иерархии древовидных виджетов:
myIcon = READ_TIFF('/path_to/myicon.tif', INTERLEAVE=2)
wtRoot = WIDGET_TREE(wTree, /FOLDER, BITMAP=myIcon)
Обратите внимание на использование ключевого слова INTERLEAVE, чтобы результирующий массив изображений имел размеры 16 x 16 x 3.В зависимости от формата файла изображения вам может потребоваться изменить массив изображений другими способами.
Использование изображений из дистрибутива IDL
Подкаталог /resources/bitmaps дистрибутива IDL содержит подборку 16-цветных (4-битных) изображений значков размером 16 x 16 пикселей. Чтобы использовать эти изображения в качестве растровых изображений в виджете дерева, вы должны преобразовать их в массивы 16 x 16 x 3 (24-битный цвет).
Следующий фрагмент кода загружает значок камеры, хранящийся в IDLDIR/resources/bitmaps/camera.bmp в массив 16 x 16 x 3:
imageRGB = BYTARR(16, 16, 3, /NOZERO)
файл = ПУТЬ К ФАЙЛУ('camera.bmp', SUBDIR=['ресурс', 'растровые изображения'])
image8 = READ_BMP (файл, красный, зеленый, синий)
imageRGB[0,0,0] = Красный[image8]
imageRGB[0,0,1] = Зеленый[image8]
imageRGB[0,0,2] = Синий[image8]
Чтобы использовать значок камеры в виджете дерева, вы должны указать переменную imageRGB в качестве значения ключевого слова BITMAP для WIDGET_TREE.
Добавление прозрачности к значкам
Пользовательские растровые изображения могут иметь прозрачные пиксели, как и значки по умолчанию. Это гарантирует, что фон значка соответствует фону виджета дерева, который вы можете настроить. Это также позволяет использовать одно растровое изображение для всех платформ, которые часто имеют разные цвета фона виджета дерева по умолчанию.
Семейство ключевых слов MASK используется для воздействия на растровые изображения виджета дерева. Когда древовидный виджет создается с растровым изображением или получает новое растровое изображение, ключевое слово MASK служит для установки подсвойства маскирования растрового изображения.Те пиксели растрового изображения, которые имеют тот же цвет, что и нижний левый пиксель, делаются прозрачными. Внутри создается маска, которая затем используется для рисования только тех непрозрачных пикселей.
Следующий код создает узел виджета дерева с растровым изображением без маски, а затем изменяет его на другое растровое изображение с маской.
узел = WIDGET_TREE (родительский узел, BITMAP = icon1)
WIDGET_CONTROL, узел, SET_TREE_BITMAP=icon2, /SET_MASK
Примечание: Ключевое слово MASK WIDGET_CONTROL не действует, если оно не используется с SET_TREE_BITMAP. Ключевое слово MASK для WIDGET_INFO можно использовать, чтобы определить, замаскировано ли растровое изображение дерева. Для получения дополнительной информации см. WIDGET_CONTROL и WIDGET_INFO.
Bitmap — ГИС Вики | Энциклопедия ГИС
В компьютерной графике растровое изображение или растровое изображение представляет собой тип организации памяти или формат файла изображения, используемый для хранения цифровых изображений. Термин битовая карта происходит из терминологии компьютерного программирования, означая просто карту битов , массив битов с пространственным отображением.Теперь, наряду с растровым изображением , это обычно относится к аналогичному понятию массива пикселей с пространственным отображением. Растровые изображения в целом могут называться растровыми изображениями или растровыми изображениями, синтетическими или фотографическими, в файлах или в памяти.
В некоторых контекстах термин «растровое изображение» подразумевает один бит на пиксель, тогда как растровое изображение используется для изображений с несколькими битами на пиксель. [1] [2]
Многие графические пользовательские интерфейсы используют растровые изображения во встроенных графических подсистемах; [3] например, подсистема GDI платформ Microsoft Windows и OS/2, где используется специальный формат формат файла растрового изображения Windows и OS/2 , обычно именуемый с расширением файла .BMP
(или .DIB
для аппаратно-независимого растрового изображения ). Помимо BMP, другие форматы файлов, в которых хранятся буквальные растровые изображения, включают InterLeaved Bitmap (ILBM), Portable Bitmap (PBM), X Bitmap (XBM) и Bitmap протокола беспроводных приложений (WBMP). Точно так же большинство других форматов файлов изображений, таких как JPEG, TIFF, PNG и GIF, также хранят растровые изображения (в отличие от векторной графики), но их обычно не называют растровыми изображениями , поскольку они используют сжатые форматы внутри.
Хранение пикселей
В типичных несжатых растровых изображениях пиксели изображения обычно хранятся с глубиной цвета 1, 4, 8, 16, 24, 32, 48 или 64 бита на пиксель. Пиксели размером 8 бит и меньше могут представлять либо оттенки серого, либо индексированные цвета. Альфа-канал (для прозрачности) может быть сохранен в отдельном растровом изображении, где он похож на растровое изображение в оттенках серого, или в четвертом канале, который, например, преобразует 24-битные изображения в 32 бита на пиксель.
Биты, представляющие пиксели растрового изображения, могут быть упакованы или распакованы (разнесены на границы байтов или слов) в зависимости от формата или требований к устройству.В зависимости от глубины цвета пиксель на картинке будет занимать не менее n/8 байт, где n — разрядность.
Для несжатого, упакованного в строки растрового изображения, например, сохраненного в файловом формате Microsoft DIB или BMP или в несжатом формате TIFF, нижняя граница размера хранилища для n бит на пиксель (2 n цветов) растровое изображение в байтах можно рассчитать как:
- размер = ширина • высота • n/8, где высота и ширина указаны в пикселях.
В приведенной выше формуле не учитываются размер заголовка и размер цветовой палитры.Из-за эффектов заполнения строк для выравнивания начала каждой строки с границей единицы хранения, такой как слово, могут потребоваться дополнительные байты.
Независимые от устройств растровые изображения и формат файлов BMP
Основная статья: формат файла BMPКорпорация Майкрософт определила конкретное представление цветовых растровых изображений с разной глубиной цвета для облегчения обмена растровыми изображениями между устройствами и приложениями с различными внутренними представлениями. Они назвали эти аппаратно-независимые растровые изображения или DIB, а формат файла для них называется форматом файла DIB или форматом файла BMP.Согласно поддержке Microsoft: [4]
Аппаратно-независимое растровое изображение (DIB) — это формат, используемый для определения аппаратно-независимых растровых изображений с различными цветовыми разрешениями. Основная цель DIB — разрешить перемещение растровых изображений с одного устройства на другое (отсюда и аппаратно-независимая часть имени). DIB — это внешний формат, в отличие от растрового изображения, зависящего от устройства, которое появляется в системе как растровый объект (созданный приложением...). DIB обычно переносится в метафайлы (обычно с помощью функции StretchDIBits()), файлы BMP и буфер обмена (формат данных CF_DIB).
Здесь «независимый от устройства» относится к формату или способу хранения, и его не следует путать с независимым от устройства цветом.
Другие форматы растровых файлов
Основная статья: Форматы файлов изображенийСистема X Window использует аналогичный формат XBM для черно-белых изображений и XPM ( пиксельная карта ) для цветных изображений. Многие другие форматы несжатых растровых файлов используются, хотя и не очень широко. [5] Гораздо более распространены стандартизированные сжатые растровые файлы, такие как GIF, PNG, TIFF и JPEG. [6] TIFF и JPEG имеют различные параметры. JPEG обычно представляет собой сжатие с потерями. TIFF обычно либо несжатый, либо сжатый без потерь Lempel-Ziv-Welch, как GIF. PNG использует сжатие без потерь deflate, еще один вариант Lempel-Ziv.
Существует также множество «необработанных» файлов изображений, в которых хранятся необработанные растровые изображения без какой-либо другой информации; такие необработанные файлы представляют собой просто растровые изображения в файлах, часто без заголовка или информации о размере, и их не следует путать с форматами фотографических необработанных изображений, которые хранят необработанные необработанные данные датчика в структурированном контейнере, таком как формат TIFF, вместе с обширными метаданными изображения.
См. также
Каталожные номера
Внешние ссылки
4 Растровые изображения с плавающей запятой
8.3
4 Растровые изображения с плавающей запятой
Модуль images/flomap предоставляет тип структуры flomap, экземпляры которого представляют растровые изображения с плавающей запятой с любым количеством цветовых компонентов. Он также предоставляет чисто функциональные операции над flomaps для компоновки, точечной математики с плавающей запятой, размытия, вычисления градиента, произвольных пространственных преобразований (таких как вращение) и преобразования в и из экземпляров bitmap%.
Это модуль Typed Racket. Его экспорт обычно можно использовать из нетипизированного кода с незначительной потерей производительности по сравнению с типизированным кодом. Исключения выделены жирным шрифтом. Большинство исключений составляют макросы, используемые для встроенных операций с плавающей запятой.
Следующий flomap fm используется в различных примерах:
> (Определение FM (Draw-flomap (λ (FM-DC) (Отправить FM-DC Set-alpha 0) Отправить FM-DC набор-фон «черный») (отправить FM-DC Clear) (отправить FM-DC Set-alpha 1/3) (отправить FM-DC Translate 2 2 ) (Отправить FM-DC Set-Pen »Black" 4 'dang-dash) (Отправить FM-DC Set-Щетка "Красный" Сплошной) (Отправить FM-DC ELLIPSE 0 0 192 192) (Отправить FM-DC Set-Щетка "Зеленый" 'Solid) (Отправить FM-DC Draw-Ellipse 64 0 192 192) (Отправить FM- dc set-brush "blue" 'solid) (отправить fm-dc draw-ellipse 32 44 192 192)) 260 240)) > (flomap->bitmap fm) Содержимое:
растровых изображений — продолжайте говорить, и никто не взрывает модуль
К вопросу о растровых изображениях
Более 18 квинтиллионов комбинаций, только некоторые из них имеют значение.
- Модуль отображает растровое изображение размером 64 пикселя, разделенное на четыре «квадранта». Каждый пиксель бывает ярким (мы называем его «белым», хотя он может быть цветным) или темным («черным»).
- Внизу есть 4 кнопки, обозначенные цифрами 1, 2, 3 и 4.
- В следующей таблице начните с правила, номер которого равен последней цифре серийного номера (добавьте/вычтите 10, чтобы получить диапазон от 0 до 9).
- Продолжайте выполнять правила (при необходимости повторяя), пока не встретите подходящее условие.
- Вычислите ответ для применимого правила. Несколько раз прибавляйте или вычитайте 4, пока ответ не будет между 1 и 4, и нажмите соответствующую кнопку, чтобы снять модуль с охраны.
# Правило 0 Если ровно в одном квадранте 5 или меньше белых пикселей, ответом будет количество белых пикселей в остальных 3 квадрантах. 1 Если белых квадрантов ровно столько, сколько горящих индикаторов, то ответом будет количество батарей. 2 Если ровно одна строка или столбец полностью белые или полностью черные, ответом будет ее координата x/y (начиная с 1 сверху/слева). 3 Если квадрантов, состоящих преимущественно из белых, меньше, чем квадрантов, состоящих преимущественно из черных, то ответом будет число квадрантов, состоящих преимущественно из черных. 4 Если все растровое изображение содержит 36 или более белых пикселей, ответом является общее количество белых пикселей. 5 Если квадрантов с преимущественно белым цветом больше, чем квадрантов с преимущественно черным, ответом будет наименьшее количество черных пикселей в любом квадранте. 6 Если ровно в одном квадранте имеется 5 или менее черных пикселей, ответом является количество черных пикселей в трех других квадрантах.