Fit изображение, за да се побере в определен размер
В тази статия ще разгледаме примера на преоразмеряване на изображения.
Създаване на пространство за съхранение на обработени изображения
Първо трябва да изберете папката, където ще съхрани обработените изображения. Изборът на мястото е удобно да се направи чрез диалогов FolderBrowserDialog. Имайте предвид, че ако е необходимо, потребителят може да създадете нова папка:
Ако потребителят избере бутона Отказ, трябва да се покаже всяко съобщение на дъното на формата:
Снимки за преработка
След като сме решили върху папката, която ще бъде променена, за да преместите изображението, трябва да изберете файловете, които съдържат изображения. За да направите това, ние използваме стандартен диалогов прозорец OpenFileDialog. които също ви позволява да направите няколко селекции на файлове.
Елементите на филтъра се разделят чрез вертикални линии. Всеки филтър е израз на един чифт елементи - описание и файлови разширения. В този случай, ние използваме две двойки:
Първият филтър изходите до само файлове с изображения диалоговия прозорец на втория филтър показва всички файлове в папката.
Когато потребителят избира файл (или няколко файла наведнъж) и щракнете върху бутона Open. файловете се обработват и се копират на предварително избраната папка.
обработка на изображения
диалогов прозорец OpenFileDialog връща списък с имена на файлове в низ масив. Сега можем да се отвори всеки файл, да качите снимка на него, я оразмерите и запазете резултата като нов файл. Тези операции ще се извършват в processFiles метода.
Метод е преминал масив от имена на файлове и директория за съхраняване на резултатите. На следващо място, методът обработва всеки файл и да го спасява.
Методът създава образ е scaleBitmap метод за промяна на размера и съхранява резултата обратно към диска.
Ако допуснете грешка, получена по време на създаването на образа на файла ние показва предупреждение и продължи обработката на следващия файл. По същия начин, ние трябва да се справят с грешки при запис на файл. Ако се сблъскате с първата грешка при запазването на файла вероятно няма смисъл да се запази на следващия файл - може би, че дискът е пълен или само за четене и т.н.
преоразмеряване
Промяна на размера на изображението е много проста. Съществува голямо разнообразие от графични техники, за да се направи правоъгълник от едно изображение в друго. Промяна на размерите на източника и приемника, ние можем да получите желания резултат. Трудността се състои в запазване на пропорциите на изображението. Нашият метод е да се покаже на цял екран за гледане на изображения устройства и добавяне на пространството около него в случай на нужда:
метод DrawImage го прави лесно да промените размера на изображението и играе важна роля в метод scaleBitmap.
управление размери
Потребителят може да избере от падащия списък на необходимите размери за бъдещи картини, които той ще изглеждат на избраното устройство.
Създаване на отделен клас, който ще съдържа информация за размера.
тип OutputSize включва име имот за идентифициране на устройството и размера на екрана. метод на замените ToString се използва за показване на текст в ComboBox. Свойства на ширина и височина са отворени и могат да бъдат използвани от всеки метод в различни класове. И накрая, дизайнерът ще създаде необходимите стойности наведнъж. Ние можем да създадем множество проявления на категория и напълнете ComboBox:
Ако искате да добавите и други типове устройства в програмата, просто добавете описание на масива и тя ще се появи в падащото меню автоматично. Добави всички елементи на масива на ComboBox е много проста:
Ако ние искаме да знаем това, което потребителят е избрал от списъка, а след това използвайте следния код:
Сега имаме необходимата информация, за да смените изображението: свойствата ширина, копие размер височина.
Разположен на фона
Можете също така да се даде възможност на потребителя да избира цвят на фона на изображението, ако това не стане напълно удобно в посочените размери:
По подразбиране, програмата използва цвета на фона е бял, но можем да го променим с помощта на диалоговия прозорец ColorDialog:
След като изберете цвета на фона, можем да го използваме в метод scaleBitmap.
За PictureBox SizeMode трябва да се настрои към Zoom. да виждате точно това.
индикатор за напредък
Ако потребителят избере няколко файла наведнъж, за да промените размера, този процес може да отнеме много време. Ние можем да се изчисли стойността на този процес, като се раздели броят на файлове, обработвани от общия брой на избрани файлове и умножаване на резултата по 100, за да се получи процент.
Работа грешка
По принцип, програмата е готова. Но, ако твърде дълго, за да работят на Visual Studio преоразмеряване може да реши, че програмата увисва. За да забраните изключването по тази причина, среда за разработка КАМР, вие трябва да намерите в менюто "Debug" клик "Изключения" и махнете отметката за "Захвърлен" изключение в ContextSwitchDeadlock:
Сега програмата ще работи правилно дори и с големи количества файлове. По принцип, програмата е готова. Но това може да се подобри.
Влачене и пускане
Би било хубаво, ако потребителят да влачите и пускате на желаната картина на правилната форма, за да преоразмерите автоматично.
Пейзаж режим / Портрет
Превод: Василий Котов