Програмування редактора зображень - PDF скачати безкоштовно

4 Підготовче завдання: гортання картинки по горизонталі Це завдання вирішується на уроці. Мета - ознайомитись із фреймворковою програмою та класами Picture та Pixel. Створіть клас, який перевертає зображення по горизонталі: Original Image Flipped Horizontally Використовуйте копію класу ImageVerticalMirror. Не забудьте вставити цей клас в основну програму в програмі редагування зображень. Ви також можете використовувати власні фотографії, щоб перевірити своє рішення. 4-й

редактора

5 Приклад програми: Видалення червоного кольору У багатьох програмах, таких як Adobe Photoshop, Microsoft Powerpoint та багатьох інших, кольори часто вказуються як суміш червоних, зелених та синіх компонентів (RGB). Кожне значення кольору знаходиться в діапазоні, в результаті якого 2 ^ 8 * 2 ^ 8 * 2 ^ 8 = 2 ^ 24 = можливі кольори. Короткий вступ до RGB можна знайти у Вікіпедії: Дві онлайн-програми для змішування кольорів можна знайти за адресою: Давайте розглянемо програму, яка видаляє червоний колір із зображення: Оригінальне зображення видаляє червоний Програма залишає структуру зображення незмінною: Координати не перераховуються, як у програмі Mirror Image, але приймаються без змін. Значення кольору зеленого та синього застосовуються до кожного пікселя, але червоному завжди встановлюється значення 0: відкритий клас BildRotEremen реалізує BildEdeworkungInterface редагування загальнодоступного зображення (зображення оригінального зображення) < int breite = originalbild.getwidth(); int hoehe = originalbild.getheight(); Picture neuesbild = new Picture(breite, hoehe); for (int y = 0; y 6 for (int x = 0; x 7 Vorbereitende Aufgabe: Rot und Grün vertauschen Diese Aufgabe wird in der Klasse gelöst. Ziel ist es, das Rahmenprogramm und die Klassen Picture und Pixel kennenzulernen. Schreiben Sie ein Programm, das für jeden Bildpunkt die Farben Rot und Grün vertauscht (oder ähnliche Farbveränderungen vornimmt): Originalbild Rot und grün vertauscht Verwenden Sie dazu eine Kopie der Klasse BildRotSpiegeln. Denken Sie daran, diese Klasse im Hauptprogramm in der Klasse BildBearbeitungsprogramm einzufügen. Sie können auch eigene Bilder verwenden, um Ihre Lösung zu testen. 7

8 Обробка зображень: Завдання Розв’яжіть загалом три завдання з п’яти завдань:> Розв’яжіть завдання 1 та завдання 2. 2> Розв’яжіть одне із завдань 3, 4, 5. Завдання 1: Поверніть малюнок на 90, 180 та 270 Напишіть три програми обробки зображень: 1. Поворот на 90 вправо [1 бал] 2. Поворот на 180 (відповідає дзеркальному відображенню точки в центрі) [3 бали] 3. Поворот на 270 вправо (відповідає повороту на 90 вліво) [1 бал] Основна програма в Клас програми обробки зображень тоді виглядає так: final String [] імена файлів зображень = < "goldengate.jpg"; final BildBearbeitungInterface[] bildbearbeiter = < new Bild90GradDrehen(), new Bild180GradDrehen(), new Bild270GradDrehen(); Selbstverständlich können Sie auch andere Bilder verwenden! Achten Sie einfach darauf, dass die Bilder maximal ca. 600x600 Pixel gross sind. 8

9 Вправа 2: Внесення кольорових змін у зображення 1. Напишіть програму, яка перетворює кольори зображення у відтінки сірого: [2 бали] Оригінальне зображення Зображення у відтінках сірого Довідкова інформація про відтінки сірого: Формула для перетворення кольорів RGB у відтінки сірого: Ви також можете Експериментуйте з іншими формулами для значень сірого - залежно від зображення інша формула забезпечує більш чіткі значення сірого. Якщо ви обчислюєте за значеннями кольорів, наступні поради можуть бути корисними: * Значення кольору - це цілі числа. Наприклад, якщо ви хочете встановити для червоної складової кожного пікселя 20% від початкового значення, ви можете обчислити його наступним чином: int newer red value = (int) (originalpixel.getred () * 0.2); newpixel.setred (новіше червоне значення); Помноження originalpixel.getred () на 0,2 = 20/100 дає в результаті так зване число з плаваючою комою. Наприклад, якщо червоне значення пікселя дорівнювало 87, результатом буде, але для нового червоного значення вам знову потрібно ціле число. Специфікація (int) після присвоєння з = гарантує, що число з плаваючою комою перетворюється на ціле число. У цьому прикладі ви можете альтернативно написати: 9

11 Вправа 3: Розмір зображення вдвічі [5 балів] Напишіть програму, яка зменшує розмір зображення вдвічі по горизонталі та вертикалі. Розмір зображення вдвічі зменшується з інтерполяцією Оригінальне зображення Зображення з чотирма пікселями буде зменшено до зображення з одним пікселем: зображення до пікселя 1 піксель 2 зображення після пікселя піксель 3 пікселя 4 Просте рішення - опустити кожен другий стовпець і кожен другий рядок. Тоді кольори пікселів у верхній правій ілюстрації будуть просто кольорами пікселя 1 у верхній лівій ілюстрації. Однак якість зображення значно погіршується. 1. Напишіть програму, яка реалізує цю просту процедуру. Більш складне рішення обчислює кольори пікселів на малюнку праворуч угорі, беручи до уваги кілька пікселів у вихідному зображенні, наприклад, враховуючи чотири показані пікселі або враховуючи всі вісім сусідніх пікселів. 2. Знайдіть метод, який використовує кілька пікселів від вихідного зображення для поліпшення якості зображення. Найкращий спосіб зробити це - експериментувати з різними формулами для розрахунку кольорів нових пікселів. 11

12 Вправа 4: Зміна кольорів залежно від положення [5 балів] Напишіть програму, яка змінює значення кольорів пікселів залежно від їх положення. Наприклад, ви можете приховати значення кольору зліва направо, тобто постійно зменшувати нове значення кольору зі 100% від початкового значення кольору вкрай ліворуч до 0% вправо: Червоний компонент оригінального зображення зменшується вправо Для таких розрахунків корисні наступні формули (аналогові формули можуть Використовуйте його для напрямку Y): подвійний дельтакс = orginalbild.getwidth () - orginalpixel.getx (); // як далеко піксель від правого краю? подвійний процентдельтаксу = дельтакс/orginalbild.getwidth (); // Відстань пікселя від правого краю у відсотках. Ви також можете затемнити зображення від центру: 12

13 Оригінальне зображення Зображення темніше від центру Корисні формули: подвійний дельтакс = Math.abs (originalBild.getWidth ()/x); // на відстані пікселя від центру? подвійний процентдельтаксу = 1 - дельтакс/(originalbild.getwidth ()/2.0); // який відсоток пікселів від центру? Ви також можете затемнити зображення в горизонтальному та вертикальному напрямках від центру. Ви також можете збільшити яскравість зображення найбільш посередині, все менше і менше до краю зображення. Але ви також можете змінити лише певний розділ зображення. Наприклад, якщо ви хочете сфотографувати людину з червоними очима, ви можете зменшити значення червоного в областях червоних очей. Визначити координати можна за допомогою фреймворкової програми. Ви можете вибрати, який ефект ви хочете обчислити! 13

14 Вправа 5: Творча обробка зображень [5 балів] За допомогою фреймворкової програми ви отримали деякі ефекти обробки зображень. Запустіть клас ImageEditingProgramAllEffects, щоб побачити всі вже вказані ефекти. Ось вибір: Class ImageEdgeDiscover Class ImageSwirl Class ImageRotation (45 ліворуч) Class ImagesSecondaryEditing with the Effects ImageRedRemove і ImageVerticalMirror Знайдіть підходяще зображення самостійно і напишіть ефект обробки зображення, щоб результат був візуально привабливим у широкому сенсі! 14-е