Перетворити jpeg в bitmap і навпаки, блог delphi-програміста

Цього разу хотів поговорити про те, як можна конвертувати зображення з одного формату в інший. На даний момент я зупинився на JPEG в Bitmap і навпаки. Тут нічого по суті складного немає, просто мені наприклад дана задача стала в нагоді для пакетного конвертування форматів зображення. Так що цілком дана задача комусь ще знадобиться, для порівняння цих двох форматів можна почитати на вікіпедії, можна сказати одне, що jpeg застосовується для стиснення зображення, але тут присутня недолік в тому, що якщо використовувати дуже високу ступінь стиснення для jpeg-файлів , то зображення просто напросто може розбитися (посипатися) на блоки з пікселями. У bmp-зображення для відображення наданих квітів відводиться від 1 до 48 бітів. Напевно саме часто використовується - це 24 біта, при 48 бітах - даний формат використовується рідко з підвищеною точністю передачі кольору і відповідно він буде розміром набагато більше ніж той же з 24 бітами передачі кольору, так ось даними перекладом (конвертацією) ми доб'ємося зниження розміру зображення і різні алгоритми передачі кольору.

Давайте тоді встановимо всі необхідні компоненти. У мене

В одному блоці у нас буде конвертація jpeg в bmp. а в іншому блоці наооборот. Також нам необхідно в uses підключити модуль jpeg. щоб ми могли працювати з jpeg-зображення в Delphi. Після цього розберемося як конвертувати BMP в JPEG. Зараз напишемо код для відкриття bmp-файлу.

А тепер код, який буде задавати ім'я, що зберігається (вихідного) jpeg-файлу.

Ну а тепер безпосередньо приступимо до самої конвертації наших зображень, на OnClick кнопки напишемо код

Не забуваємо в uses підключити jpeg. Ми створили екземпляри класу TGraphic - jpeg і bmp. Потім в bmp ми завантажуємо зображення, яке нам необхідно конвертувати, а після чого за допомогою Assign зберігаємо його в jpeg. після чого по раніше створеному імені файлу, зберігаємо наш jpeg-файл на диск. Тепер можна протестувати дуже легко, якщо немає bmp-зображення, то дуже легко його створити - відкрити mspaint і намалювати пару ліній і зберегти як bmp-зображення, після цього відкриваємо його і натискаємо на кнопку «Конвертувати«, порівнюємо їх розміри - відрізняються значно.

Тепер приступи до зворотного дії - Конвертація JPEG в BMP. Код для відкриття jpeg-файлу той же самий