Fit imagine pentru a se potrivi cu dimensiunea specificată

În acest articol considerăm exemplul redimensionarea imaginilor.

Configurarea spațiu de stocare pentru imagini prelucrate

Mai întâi trebuie să selectați folderul în care vom stoca imaginile prelucrate. Alegerea locației este convenabil să se facă prin intermediul Folderbrowserdialog de dialog. Rețineți că, dacă este necesar, utilizatorul poate crea un dosar nou:







În cazul în care utilizatorul alege butonul Anulare, aveți nevoie pentru a afișa orice mesaj de pe partea de jos a formularului:

Imagini pentru prelucrarea

Odată ce ne-am decis pe folderul, care va fi modificat pentru a muta imaginea, trebuie să selectați fișierele care conțin imagini. Pentru a face acest lucru, vom folosi o casetă de dialog standard de OpenFileDialog. care, de asemenea, vă permite să faceți mai multe selecții de fișiere.

Elementele filtrului sunt separate prin bare verticale. Fiecare filtru este o expresie a unei perechi de elemente - descriere și extensii de fișiere. În acest caz, vom folosi două perechi:

Primele ieșiri de filtru numai fișiere imagine caseta de dialog, al doilea filtru afișează toate fișierele din dosar.

Când utilizatorul selectează un fișier (sau mai multe fișiere simultan) și faceți clic pe butonul Deschidere. fișierele sunt procesate și copiate în directorul selectat anterior.

de procesare a imaginii

caseta de dialog OpenFileDialog returnează o listă de nume de fișiere într-o matrice șir. Acum putem deschide fiecare fișier, încărcați o imagine a acesteia, redimensiona, și de a salva rezultatul ca un fișier nou. Aceste operațiuni vor fi efectuate în processFiles metoda.

Metoda este trecut o serie de nume de fișiere și calea de dosar pentru a salva rezultatele. Apoi, metoda procesează fiecare fișier și salvează-l.

Metoda creează o imagine este metoda scaleBitmap pentru redimensionarea și stochează rezultatul înapoi la disc.

Dacă o eroare este primită în timpul creării imaginii fișierului vom afișa un avertisment și să continue procesarea fișierul următor. În mod similar, trebuie să se ocupe de erori la salvarea unui fișier. Dacă întâmpinați prima eroare la salvarea fișierului probabil nu are nici un sens pentru a păstra fișierul următor - probabil, discul este plin sau doar în citire, etc.







redimensionarea

Redimensionarea imaginea este foarte simplu. Există o varietate de tehnici grafice pentru a desena un dreptunghi de la o imagine la alta. Modificarea dimensiunilor sursei și receptor, putem obține rezultatul dorit. Dificultatea constă în menținerea proporțiile imaginii. Metoda noastră este de a afișa pe ecran complet imagine dispozitive de vizionare, și se adaugă spațiu în jurul ei, în caz de nevoie:

Metoda DrawImage face ușor pentru a redimensiona imaginea și joacă un rol major în metoda scaleBitmap.

managementul dimensiuni

Utilizatorul poate selecta din lista verticală dimensiunea necesară pentru imagini viitoare, pe care le va arata pe dispozitivul selectat.

Creați o clasă separată, care va conține informații cu privire la dimensiunea.

Tipul de OutputSize include numele de proprietate pentru identificarea dispozitivului și dimensiunea ecranului. Metoda ToString Înlocuiri este utilizat pentru a afișa textul în ComboBox. Proprietățile de lățime și înălțime sunt deschise și pot fi utilizate de orice metodă în diferite clase. În cele din urmă, proiectantul va stabili valorile necesare la o dată. Putem crea o serie de instanțe ale unei clase și umple ComboBox:

Dacă doriți să adăugați alte tipuri de dispozitive în program, pur și simplu adăugați o descriere la matrice și va apărea în caseta combo automat. Adăugați toate elementele de matrice la ComboBox este foarte simplu:

Dacă vrem să știm ce utilizatorul a selectat din listă, apoi utilizați următorul cod:

Acum avem informațiile necesare pentru a schimba imaginea: proprietățile lățimea, înălțimea dimensiunea de copiere.

Setați fundal

Puteți activa, de asemenea, utilizatorului să selecteze o culoare de fundal pentru imaginea în cazul în care nu se potrivesc în întregime în dimensiunea specificată:

În mod implicit, programul utilizează culoarea de fundal este alb, dar putem schimba cu ajutorul casetei de dialog ColorDialog:

După ce selectați culoarea pentru fundal, putem folosi în metoda scaleBitmap.

Pentru proprietate PictureBox SizeMode trebuie să fie setat la Zoom. pentru a vedea imaginea exactă.

indicator de progres

Dacă utilizatorul selectează mai multe fișiere simultan pentru a modifica dimensiunea, acest proces poate dura o lungă perioadă de timp. Putem calcula valoarea acestui proces prin împărțirea numărului de dosare procesate de numărul total de fișiere selectate și înmulțind rezultatul cu 100 pentru a obține un procent.

eroare de manipulare

În principiu, programul este gata. Dar, în cazul în care prea mult timp pentru a lucra la redimensionarea Visual Studio poate decide că programul se blochează. Pentru a dezactiva excluderea din acest motiv, mediul de dezvoltare CIDA, trebuie să găsiți în meniul „Debug“ faceți clic pe „Excepții“ și eliminați marcajul de validare pentru excepție „Aruncat“, în ContextSwitchDeadlock:

Acum, programul va funcționa corect chiar și cu cantități mari de fișiere. În principiu, programul este gata. Dar poate fi îmbunătățită.

Drag-and-drop

Ar fi frumos dacă utilizatorul poate trage și plasa imaginea dorită pe forma dreapta pentru a redimensiona automat.

Peisaj Mod / Portret

Traducere: Vasily Kotov