Дослідження методів стиснення графічної інформації: розробка конвертора графічних файлів
Методи стиснення растрової інформації діляться на дві великі групи: стиснення з втратами і стиснення без втрат. Методи стиснення без втрат дають більш низький коефіцієнт стиснення, але зате зберігають точне значення пікселів вихідного зображення. Методи з втратами дають більш високі коефіцієнти стиснення, але не дозволяють відтворити початкове зображення з точністю до піксела. Для файлів, які… Читати ще >
Дослідження методів стиснення графічної інформації: розробка конвертора графічних файлів (реферат, курсова, диплом, контрольна)
КУРСОВА РОБОТА
Дослідження методів стиснення графічної інформації: розробка конвертора графічних файлів
Вступ
Постановка проблеми і аналіз літератури. Основною причиною виникнення задач стиснення зображень в системах цифрової обробки даних була перемога розрахункових можливостей процесорів комп’ютерів над системами збереження і передачі даних. Стиснення дозволяє зменшити навантаження на канали передачі даних або зменшити обсяг, який займають об'єкти за рахунок їх обробки та перетворення, що як відомо створює навантаження на процесор комп’ютера, тому що стиснення даних так чи інакше пов’язано з великими обсягами математичних розрахунків [1, 2].
Здавалося, що зі збільшенням обсягів носіїв даних, зі зростом пропускної здатності мережного обладнання ця проблема відійде у минуле, проте користувачі і прогрес постійно бажають еволюції, покращення якості, ефектності у їх спілкуванні з цифровим світом, що у свою чергу призводить до збільшення обсягів потрібної для цього інформації.
Метою даної курсової роботи є аналіз і оцінка методів стиску зображень в системах цифрової обробки даних для вибору перспективного підходу до проблеми стиснення зображень, а також розробка конвертора графічних файлів.
Актуальність. Люди поринули у комп’ютерний світ. Замість картин на полотні все частіше ми бачимо комп’ютерну графіку, а отже і конертори зображень є на даний час актуальними програмами, оскільки вони служать для конвертування зображень із одного формату в інший, що є зручним для користувачів ПК.
Завдання курсової роботи: розробка структур та вибір методів обробки даних, алгоритмів функціонування програмних модулів, забезпечення якісних показників роботи програми: створення зручного інтерфейсу користувача.
1. Основні теоретичні відомості алгоритмів стиснення зображень
1.1 Класи зображень
програмний зображення стиснення конвертування
Кажучи про обробку зображень за допомогою ЕОМ доцільно виділити 4 класи зображень. Ця класифікація зв? язана не стільки з природою зорового сприйняття зображень, скільки з підходом до їх уявлення і обробки.
Клас 1 — тонові і кольорові зображення. У цей клас входять зображення, що мають вид звичайних телевізійних зображень. Вони забезпечують досить точне відтворення реальності і представляються матрицями з цілочисельними елементами. Для позначення цих елементів використовують терміни «елементи зображення», «піксел», «пел».
У більшості прикладних завдань ці матриці мають дуже великі розміри об'єктів — 512×512 елементи, що є найбільш загальноприйнятими. У зв? язку з цим представлення зображень не завжди зберігаються в пам’яті у вигляді звичайних матриць і часто використовуються витонченіші різновиди структур даних.
Кольорові зображення можуть представляється або за допомогою 3-х матриць (для червоного, синього і зеленого кольорів окремо), або за допомогою іншої матриці таким чином, що окремі біти будь-якого елементу представляють різні кольори, оскільки людське око інколи не в змозі розрізняти рівні освітленості, що розрізняються один від одного менш ніж на 1%, то для представлення кольорового зображення досить витрачати по 1-му байту на колір одного пікселя.
Прийнятних результатів вдається добитися, використовуючи по три біта для передачі будь-якого з двох кольорів і два біта для передачі третього.
Клас 2−2-х рівневі або такі, що представлені в декількох кольорах зображення.
Зображення сторінки з книжки — це типовий приклад 2-го класу, тобто чорно-біле зображення. Подібне зображення можна представляти матрицями, витрачаючи по 1 біту на елемент, а також у вигляді «карт», оскільки на цих зображеннях є добре помітні області одного кольору. Тому такі зображення об'єднані в один клас.
Одна з проблем, що виникають у зв? язку з використанням 1-го біта для представлення будь-якого пікселя, полягає у відсутності стандартного для різних типів ЕОМ і пристроїв візуального відображення способів об'єднання бітів в байт, і байт у слово. Тобто, крайній зліва піксель може представлятися, як найменше, так і найбільш значущими бітами байта.
Тому користувач повинен думати про вибір найбільш відповідного способу уявлення у вживаному ним пристрої.
Клас 3 — безперервні криві і лінії. Приклади зображень 3-го класу — це контури областей, сигнали, діаграми і графіки. Відповідні дані є послідовностями крапок, що допускають уявлення через їх координати х і у. Але такий метод уявлення досить неефективний.
При чому те ж саме відноситься і до уявлення, заснованого на використанні різниці значень координат Dх і Dу у сусідніх крапок. Ефективнішим є уявлення за допомогою ланцюгових кодів, при використанні яких вектору, що сполучає 2 сусідніх крапки, ставиться у відповідність один символ, що належить деякій кінцевій множині.
Якщо крапки розташовані достатньо близько одна до одної, то помилка та, що вноситься квантуванням, може виявитися прийнятною. Ефективніший спосіб уявлення полягає в застосуванні диференціального ланцюгового коду, що передбачає кодування кожної крапки різницею 2-х послідовних кодів. В цьому випадку значення будуть 0,+/-1,+/-2,+/-3 і 4. Вірогідність їх появи неоднакова.
При кодуванні гладких кривих значення 0 і +/-1 з’являтиметься частіше, ніж всі інші, а 4 — украй рідко.
При такому способі кодування зазвичай витрати в середньому не перевищують 2-х біт на крапку.
Клас 4 — крапки або багатокутники. Зображення класу 4 складаються з безлічі окремих крапок, що знаходяться одна від одної так далеко, що для їх уявлення ланцюговим кодом користуватися не можна. Замість нього слід використовувати матрицю, що містить їх координати х і у. Відповідна апаратура відображення дозволяє з'єднати крапки прямими або простими кривими.
У прикладних завданнях машинної графіки найчастіше використовують зображення саме цього типу. Не дивлячись на те, що візуальне відображення може відноситься до класу 2 або до класу 1, його внутрішнє зображення належить класу 4. У багатьох прикладних завданнях використовується одна з наступних форм уявлення:
1) Апроксимація поверхонь многогранниками. Після проектування зображення складається з багатокутників.
2) Криволінійна апроксимація поверхонь. На поверхні викреслюється ряд кривих, опис яких потім використовується для отримання проекцій, відтворних у вигляді зображень 3 класу.
3) Апроксимація ділянками поверхні вищого порядку. Цей спосіб аналогічний першому способу, за винятком того, що елементи, які створюють поверхню об'єкта, що використовується, не плоскі багатокутники, а ділянки поверхні вищого порядку.
У всіх випадках положення об'єкта визначається деяким невеликим числом крапок і тому зображення класу 4 надають найбільший інтерес для машинної графіки.
1.2 Представлення зображення в пам’яті
Обчислювальні машини широко застосовуються в різних галузях, в тому числі і для обробки графічної інформації. Розглянемо спрощену схему представлення графічної інформації в комп’ютері.
Рисунок 1.1 - Фрагмент зображення
На рисунку 1.1 поле зображення покрите сіткою 8×8. Зіставимо біт 0 тим полям, що вільні від зображення і 1 тим, що покриті фарбою.
Якщо тепер кожен рядок інтерпретувати як двійкове число, то зображення можна записати (закодувати) послідовністю восьми десяткових чисел: 0, 4, 132. 254, 254, 4, 4, 0, або у шістнадцятковому вигляді: 00, 04, 84, FE,
FE, 04, 04, 00 і зберігати у пам’яті ЕОМ у вигляді байтів.
1.3 Основні алгоритми стиснення зображень
Растрові файли мають дуже великі розміри. Якщо знехтувати заголовками файла й іншими неграфічними даними, те його розмір пропорційний кількості пікселів у зображенні і кількості бітів, необхідних для представлення кожного пiксела. Повнокольорове зображення розміром 1024×768 пікселів займає більш двох мегабайт пам’яті, а одна секунда вiдеофільма телевізійної якості в растровому виді вимагає біля тридцятьох мегабайт. Тому жорсткий диск можна заповнити миттєво. Навіть компакт-диск, що вміщає біля 700 мегабайт даних, не настільки великий, щоб помістити такий об'єм інформації.
Використовуючи метод, який називається стисненням зображень, можна різко зменшити в розмірі графічні файли. При стисненні графічної інформації використовуються спеціальні прийоми, що зменшують кількість байтів, необхідних для представлення зображення. Степінь стиснення залежить від методу стиснення і вмісту графічного файла. Як правило графічний файл стискується в п’ять і більш разів. Існують методи, що стискують ще сильніше, але з втратами якості. При відновленні зображення втрачається деяка частина колірної інформації. У підсумку, розпаковане зображення може стати злегка розмитим або знебарвленим.
Методи стиснення растрової інформації діляться на дві великі групи: стиснення з втратами і стиснення без втрат. Методи стиснення без втрат дають більш низький коефіцієнт стиснення, але зате зберігають точне значення пікселів вихідного зображення. Методи з втратами дають більш високі коефіцієнти стиснення, але не дозволяють відтворити початкове зображення з точністю до піксела. Для файлів, які формуються програмами автоматизованого проектування, дуже важливо зберегти всю інформацію, тому що втрата хоча б одного біта може змінити зміст усього файла. Зовсім інша справа з растровими даними. Людське око не сприймає всі відтінки кольору в звичайному растровому зображенні. Таким чином, деякі деталі можуть бути опущені без видимого порушення інформаційного змісту зображення.
Розглянемо два найбільш розповсюджені методи стиснення зображень. Спочатку познайомимося з одним із варіантів групового кодування (run-lenght encoding — RLE). Ідея методу полягає в тому, що послідовність значень, що повторюються, заміняється парою чисел: одне з них вказує на довжину групи (число повторень даного значення), а інше — на власне це значення. Це дуже загальний і дуже простий метод без втрат. Він використовується в багатьох популярних сьогодні форматах графічних файлів і, зокрема, у PCX і BMP. У його основі лежить той факт, що багато зображень надлишкові, оскільки містять велику кількість суміжних пікселів одного кольору. Розглянемо, наприклад, як за допомогою групового кодування стискається зображення, у якому зустрічається підряд 100 пікселів із нульовим значенням. Ця послідовність із 100 нулів кодується парою чисел (100,0). Отже такий фрагмент картинки скоротиться в п’ятдесят разів.
Іншій методом, яким користуються досить часто, — JPEG (метод, що стискує з утратами) одержав свою назву від абревіатури об'єднаної групи експертів в області фотографії (Joint Photographic Expert Group — JPEG), що його і розробила. JPEG широко використовується при стиснення статичних зображень. Цей метод істотно складніший, чим RLE. Основна ідея методу перебуває в поділі інформації в зображенні за рівнем важливості, і потім відкиданні менше важливої її частини, зменшуючи тим самим загальний об'єм збережених даних. Це досягається перетворенням матриці колірних значень у матрицю амплітуд, що відповідають визначеним частотам розкладання зображення. (Звукові коливання, наприклад, можна розкласти математичними методами на прості синусоїдальні гармоніки різних амплітуд і частот, що при додаванні відтворюють вихідний сигнал). Рядок або стовпець пікселів зображення теж можна представити амплітудами і частотами. Мова в даному випадку йде не про спектральний склад світла, а про форму представлення кривих, що утворять графіки, якщо значення пікселів служать ординатами. Відзначимо, що формула перетворення матриці пікселів у матрицю амплітуд не проста. JPEG-стиснення відкидає частину високочастотних компонент зображення, залишаючи компоненти з низькими частотами. Людське око менше критичне до високочастотних варіацій кольору, оскільки загальний вид зображення визначається низькими частотами. Значення піксела, отримане при відновленні зображення, дещо відрізняється від вихідного значення, тому що частина інформації була загублена, хоча звичайно вони дуже близькі.
У методі JPEG є дуже цікава особливість: користувач може задавати коефіцієнт якості. Високий коефіцієнт якості дозволяє зберегти більше деталей, але при цьому зменшується ступінь стиснення. При низькому коефіцієнті якості степінь стиснення збільшується, але зображення стає менше чітким.
Чим нижче коефіцієнт якості, тим більша кількість інформації відкидається.
Коли любий із методів (RLE або JPEG) застосовується до повнокольорового зображення, то червона, зелена і синя компоненти стискуються незалежно. Якщо в растровому зображені використовується палітра або просто відтінки сірого, то значення пікселів можливо закодувати в один прохід.
Алгоритм групового кодування
Починаючи з першого рядка, програма групового кодування переглядає значення пікселів зліва праворуч і шукає відрізки пікселів, що повторюються. Всякий раз, коли зустрічаються три або більше пікселів, що йдуть підряд, з однаковим значенням, програма заміняє їх парою чисел: перше число вказує на довжину відрізка, друге — на значення пікселів. Число, що визначає довжину відрізка, називають міткою відрізка.
Щоб ідентифікувати серії значень пікселів, що не повторюються, програма також уставляє мітки, що вказують на кількість таких значень у серії. Зарезервований біт необхідний для того, щоб можна було відрізнити мітку відрізка від мітки серії значень, що не повторюються. Наприклад, у 8-ми бітах можна задати послідовності довжиною до 127 пікселів; восьмий біт у кожній мітці може відрізняти відрізок від серії пікселів, що не повторюються. Точно так само обробляється кожний рядок пікселів і відрізки однакових значень пікселів стискуються у всьому зображенні.
Графічна програма декодує зображення, зчитуюючи стиснутий файл і відновлює відрізки повторюваних значень пікселів. Зауважимо, що відновлене зображення цілком збігається з оригіналом.
Алгоритм JPEG
Насамперед програма поділяє зображення на блоки — матриці розміром 8×8 пікселів. При використанні методу JPEG час, що затрачається на стиснення зображення, пропорційний квадрату числа пікселів у блоці. Обробка декількох блоків меншого розміру робиться значно швидше, чим обробка всього зображення цілком.
До значень пікселів застосовується формула, названа дискретним косинусоїдальним перетворенням (Discrete Cosine Transform — DCT). DCT переводить матрицю значень пікселів 8×8 у матрицю значень амплітуд тієї ж розмірності, що відповідає визначеним частотам синусоїдальних коливань. Лівий верхній кут матриці відповідає низьким частотам, а правий нижній — високим.
Коефіцієнт якості, введений користувачем, використовується в простій формулі, що генерує значення елементів іншої матриці 8×8, яка називається матрицею квантування. Чим нижче коефіцієнт якості, тим більші значення будуть мати елементи матриці.
Кожне значення в матриці, яка була сформована після DCT-перетворення, ділиться на відповідне значення з матриці квантування, потім округляється до найближчого цілого числа. Оскільки великі числа знаходяться в правій нижній половині матриці квантування, то основна частина високочастотної інформації зображення буде відкинута. Тому нижня права частина матриці пікселів буде перебувати в основному з нулів.
Далі програма зчитує елементи матриці і кодує їх послідовно методами без втрат. Зауважимо, що стиснення істотно залежить від нулів у правій нижній половині матриці. Чим нижче коефіцієнт якості, тим більше нулів у матриці і, відповідно, тим вище ступінь стиснення.
Декодування JPEG-зображення починається з кроку зворотного кодуванню без втрат, у результаті чого відновлюється матриця квантування пікселів.
Значення з матриці пікселів перемножується на значення з матриці квантування, щоб відновити, наскільки це можливо, матрицю, що була обчислена на кроку застосування DCT. На етапі квантування була загублена деяка частина інформації, тому числа в матриці будуть близькі до початкових, але не буде абсолютного збігу.
Зворотна до DCT формула (IDCT) застосовується до матриці для відновлення значень пікселів вихідного зображення. Ще разом відзначимо, що отримані кольори не будуть цілком відповідати початковим через втрату інформації на кроку квантування. Відновлене зображення, при порівнянні з оригіналом, буде виглядати декілька розмитим і знебарвленим.
Алгоритм Хаффмана
Один з класичних алгоритмів. Використовує тільки частоту появи однакових байт в зображенні. Порівнює символів вхідного потоку, які зустрічаються більше число разів, ланцюжок біт меншої довжини. І навпаки — зустрічаються рідко — ланцюжок більшої довжини. Для збору статистики вимагає двох проходів по зображенню. Коефіцієнти стиснення: 1 / 8, 2 / 3, 1. Вимагає запису у файл таблиці відповідності кодуються символів і кодують ланцюжків. На практиці використовуються його різновиди. Так, в деяких випадках резонно або використовувати постійну таблицю, або будувати її «адаптивно», тобто в процесі архівації / розархівації. Ці прийоми позбавляють від двох проходів по зображенню і необхідності зберігання таблиці разом з файлом. Кодування з фіксованою таблицею застосовується як до останнього етапу архівації в JPEG.
Близька модифікація алгоритму використовується при стисненні чорно-білих зображень. Послідовності поспіль йдуть чорних і білих крапок замінюються числом, рівним їх кількості з ознакою кольору. А цей ряд вже, у свою чергу, стискується по Хаффману з фіксованою таблицею. Алгоритм реалізований у форматі TIFF.
JBIG
Алгоритм розроблений групою експертів ISO (-Joint Bi level Experts Group) спеціально для стиснення однобітних чорно-білих зображень. Наприклад, факсів або відсканованих документів. У принципі може застосовуватися і до 2-х, і до 4-х двійкового картинок. При цьому алгоритм розбиває їх на окремі бітові площині. JBIG дозволяє управляти такими параметрами, як порядок розбиття зображення на бітові площині, ширина смуг в зображенні, рівні масштабування. Остання можливість дозволяє легко орієнтуватися в базі великих за розмірами зображень, переглядаючи спочатку їх зменшені копії. Настроюючи ці параметри, можна використовувати цікавий ефект при отриманні зображення по мережі або з будь-якого іншому каналу, пропускна здатність якого мала в порівнянні з можливостями процесора. Розпаковуватися зображення на екрані буде поступово, як би повільно «проявляючись». При цьому людина починає аналізувати зображення задовго до кінця процесу розархівації.
Алгоритм побудований на базі Q-кодувальника, патент на який володіє IBM. Q-кодер також, як і алгоритм Хаффмана, використовує для частіше з’являються символів короткі ланцюжки, а для рідше з’являються довгі. Однак, на відміну від нього, в алгоритмі використовуються і послідовності символів. Характерною особливістю JBIG є різке зниження ступеня стиснення при підвищенні рівня шумів вхідний картинки.
Фрактальний стиск
Ця група алгоритмів, мабуть, є найбільш перспективною і розвивається зараз найбільш бурхливо. Перші практичні результати були отримані зовсім недавно — у 1992 році - і виробили приголомшливе враження. Коефіцієнт стискування у фрактальних алгоритмів варіюється в межах 2−2000. Причому великі коефіцієнти досягаються на реальних зображеннях, що, взагалі кажучи, нетипово для попередніх алгоритмів. Крім того, при розархівації зображення можна масштабувати. Унікальна особливість цього алгоритму полягає в тому, що збільшене зображення не дробиться на квадрати. Під фрактального стиснення використовується принципово нова ідея — не близькість квітів у локальній області, а подібність різних за розміром областей зображення. Це, безумовно, найбільш прогресивний підхід на сьогоднішній день. Алгоритм орієнтований на повнокольорові зображення і зображення в градаціях сірого кольору.
Його особливістю є потреба в колосальних обчислювальних потужностях за архівації. При цьому розпаковування вимагає менше обчислень, ніж у JPEG.
1.4 Огляд та аналіз сучасних програмних засобів конвертування зображень
FastStone Photo Resizer
Безкоштовна програма для конвертування графічних файлів.
Рисунок 1.2. — Робоча область FastStone Photo Resizer
Можливості FastStone Photo Resizer:
— Дозволяє змінювати розміри, перейменовувати, обрізати, обертати, змінювати колірні схеми, додавати текст і інші ефекти на зображення.
— Може перейменовувати зображення, з порядковим номером.
— Підтримка форматів JPEG, BMP, GIF, PNG, TIFF і JPEG2000.
— Пошук і заміна тексту в іменах файлів.
— Підтримує функцію «Drag & Drop».
— Може працювати в пакетному режимі
— Дозволяє зберігати і завантажувати налаштування і т.д.
Зміни в останній версії:
— Додана можливість коригування USM (Unsharp Mask).
— Покращений ефект «Водяний знак».
— Інші незначні поліпшення і виправлення помилок.
Автор: FastStone Soft
Ліцензія / Ціна: Free
Оновлено: 2011;05−04
Версія Windows: XP/Vista/7.
IrfanView
Компактна і в той же час потужна програма для перегляду і конвертації графічних файлів з просунутими можливостями, що підтримує безліч форматів графіки.
Рисунок 1.3. — Робоча область програми IrfanView
Основні властивості IrfanView:
— Перегляд великої кількості форматів графічних файлів, а також програвання відео та аудіо файлів.
— Слайдшоу (можливість збереження слайдшоу у форматі EXE/SCR або запису на CD).
— Показ EXIF/IPTC/коментарів для зображень в режимі слайдшоу або повного екрану.
— Збільшення/зменшення видимого розміру зображення, та зміна розміру самого зображення. Поворот зображення, різні ефекти (Sharpen, Blur, Adobe 8BF, Filter Factory, Filters Unlimited). Копіювання, вирізування, вставка виділеної частини зображення.
— Захоплення зображення з екрана, створення скріншотів.
— Підтримка отримання зображення із сканерів.
— Витягання іконок з файлів EXE, DLL, ICL.
— Пакетне перетворення форматів файлів і їх перейменування.
— Створення веб-сторінки із зображень.
Підтримувані формати:
ANI, BMP, DIB, CLP, CPT, DCX, EMF, ICL, EXE, DLL, ICO, IFF, LBM, PBM, PCD, PCX, PGM, PNG, PPM, PSD, TGA, TIF, TIFF, TXT, WMF, AIF, AU, SND, MID, WAV, ASF, AVI, MPG, MPEG, WMA, WMV.
Після встановлення плагінів можливий перегляд форматів: B3D, CAM, CRW, CR2, DCM, ACR, IMA, DDS, DJVU, IW44, DXF, DWG, HPGL, CGM, SVG, ECW, EPS, PS, PDF, FITS, FPX, FSH, G3, HDR, ICS, IMG, JP2, JPC, J2K, JPM, KDC, LDF, LWF, Mac PICT, QTIF, MNG, JNG, MrSID, SID, DNG, EEF, NEF, MRW, ORF, RAF, DCR, SRF, PEF, X3 °F, NLM, NOL, NGG, PIC, PSP, RAS, SUN, RAW, RLE, SFF, SFW, SGI, RGB, SWF, TTF, WAD, WAL, WBMP, XBM, XPM, MED, MP3, OGG, RA, MOV.
Зміни в останній версії:
— Змінено/оновлені додатки.
Автор: Irfan Skiljan
Оновлено: 2012;03−30
Версія Windows: Windows All.
CutePDF Writer
Це безкоштовна версія комерційного продукту для конвертації і друку документів у форматі PDF (Adobe Portable Document Format).
Вона встановлюється як віртуальний принтер, доступний з будь-якого додатку, що підтримує опцію «Друк».
CutePDF Writer не має графічного інтерфейсу користувача, тому її не потрібно налаштовувати. Також, так як цей принтер є віртуальним драйвером, вам не потрібно буде встановлювати додаткові компоненти Office для створення файлів PDF. CutePDF Writer є безкоштовним для персонального і комерційного використання і не містить рекламних модулів.
Рисунок 1.4. — Робоче середовище CutePDF Writer
Зміни в останній версії:
— Додана підтримка 32 — і 64-бітної Windows 7.
Автор: Acro Software Inc.
Оновлено: 2011;07−03
Версія Windows: Windows All.
XnView
Безкоштовна програма для перегляду і конвертації графічних файлів.
Крім своїх основних функцій — якісного показу графіки і її конвертації з одного формату в іншій, програма володіє і безліччю додаткових інструментів: робота зі сканером, створення html-сторінок з графікою, підрахунок використаних в картинці кольорів.
Рисунок 1.5. - XnView
Основні можливості XnView:
— Можливість збереження налаштувань, як сценаріїв.
— Імпорт понад 400 графічних форматів.
— Експорт 50 графічних форматів.
— Підтримка багатосторінкових TIFF-файлів, анімовані GIF і ICO.
— Підтримка метаданих IPTC, EXIF.
— Зміна розмірів зображення.
— Перегляд відео файлів за наявності відповідних кодеків в системі.
— Налаштування кольорів і контрастності.
— Повний екран. Слайд-шоу.
— Браузер зображень.).
— Підтримка друку.WAIN.
— Підтримка перетягування (Drag & Drop).
— Підтримка 44 мов (у тому числі української та російської).
Зміни в останній версії:
— Виправлені помилки.
Автор: XnView
Оновлено: 2012;06−06
Версія Windows: Windows All.
2. Програмна реалізація конвертора графічних файлів
2.1 Постановка задачі та вимоги до програмного продукту
У відповідності до технічного завдання програмний засіб «Конвертатор графічних файлів» повинен забезпечувати можливість конвертування графічних даних із одного формату в інший.
На основі проведеного аналізу предметної області встановлено, що конвертатор повинен бути у вигляді легкої для сприйняття програми, яка має можливість зберігання файлів у потрібномк нам форматі. При конвертуванні з меню повинен вибиратись потрібен нам об'єкт, потім задаватись назва зображення і місце, куди даний об'єкт потрібно зберігати.
Програмний продукт повинен:
· бути легкий у використанні;
· мати прозорий інтерфейс;
· не бути нагромадженим;
· не мати лишніх процедур та функцій;
· мати підказки (при потребі).
Отже, основними функціональними можливостями для даного програмного продукту є:
· задання назви зображення при збереженні його на диску;
· можливість вибору даних зі списка (одного чи декількох);
· збереження зображення у потрібне місце на жорсткому диску;
· доступ до даних користувача;
· конвертування зображень у потрібний формат.
Дана програма може конвертувати зображення у такі формати:
· JPEG;
· BMP;
· PNG;
· EMF;
· WMF.
2.2 Програмна реалізація
Для реалізації програми було використано такі компоненти як Label, Bevel, Button, MainMenu, OpenDialog, SaveDialog, Image.
Label — мітка, яка відображає текст, який не змінюється користувачем. Ніяке оформлення тексту не передбачене, крім кольору мітки і тексту (показано на рисунку 2.1)
Рисунок 2.1. — Використання мітки Label
Для відокремлення різних частин робочої області було використано компонент Bevel (кромка). Він служить для виділення окремих частин форми тривимірними рамками і смугами (його застосування у програмі показано на рисунку 2.2)
Рисунок 2.2. — Застосування компонента Bevel
Для виводу на екран логотипа програми було використано компонент Image (малюнок). Приклад логотипа наведено на рисунку 2.3.
Рисунок 2.6. — Використання компонента Image
Для зображення кнопок на формі та реалізації у програмі команд за допомогою обробника події OnClick було використано компонент Button. Ці компоненти позначені на наступному рисунку.
Рисунок 2.7. — Використання компонента Button
Для створення меню програми використовувався компонент MainMenu, який не є візуальним. Він дозволяє конструювати і створювати на формі смугу головного меню, а також наступні випадаючі меню.
Рисунок 2.8. — Меню програми
Для відкриття (вибору) потрібного зображення використовується компонент OpenDialog, який дозволяє обрати потрібний нам об'єкт із жорсткого диска.
Для збереження уже відконвертованого зображення використовується компонент SaveDialog, який зберігає об'єкт в потрібне місце на жорсткому диску.
2.3 Тестування програмного засобу
Програма була успішно протестована: всі доступні користувачу функції працюють коректно.
2.4 Опис роботи програмного засобу
Отже, після запуску програми маємо вікно, яке містить меню, кнопки, робочу область, де буде розташоване зображення.
Після того, як обрали зображення і занесли його у програму, даний програмний засіб аналізує його на роздільну здатність, розмір, а також дозволяє обрати потрібний користувачеві формат, у який це зображення потрібно конвертувати.
Наступним кроком потрібно обрати певний формат (для цього достатньо натиснути кнопку з відповідним форматом). Коли файл буде конвертований, то на екрані з’явиться повідомлення про завершення операції.
Натискаємо Файл — Зберегти, тоді зберігаємо у потрібне місце на диску з потрібною назвою.
Висновки
Проведений аналіз основних методів стиснення зображень показав відсутність універсальних алгоритмів, незалежних від класу зображень. Найбільш перспективним методом стиснення без втрат є DEFLATE, але в чистому вигляді його застосування не дасть вагомих результатів. Запропоновано використовувати нові підходи до стиснення зображень на основі методу DEFLATE з використанням етапу попередньої обробки та переходом до кольорорізницевої моделі представлення кольорів.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ