lucra cu componenta fișiere grafice (TImage)
Această componentă poate fi găsită în fila suplimentară a componentei paletă. În același timp, aceasta nu afectează alte oportunități pentru că nu aveți-ar fi fost gata să se întâlnească cu grafica. Acum, că am acoperit toate req-dimoe, este timpul să dezasambleze proprietățile și metodele de componente.componenta TImage este destul de universal și poate afișa imagini în diferite formate. Dar, în instalarea inițială se poate încărca doar fișiere formate BMP, JPG, JPEG sau WMF. Să vedem cum se face. Sauze da o nouă aplicație și instalați-l pe forma unui singur buton și componentă TImage file suplimentare.
Acum, rola pentru a forma openPictureDialog fila Dialoguri componente. Această componentă este proiectat pentru GRT-hartă pe ecranul unei imagini standard de deschidere fereastră. De asemenea, vom avea nevoie de-NMS nevoie de un buton este apăsat pe care o vom afișa o fereastră de deschidere mașină și apoi Tencuieli brute selectate pentru descărcare.
Fig. de mai sus puteți vedea forma viitorului program. Dar până acum doar o formă gata. Pentru a deveni un program cu drepturi depline, este necesar să se scrie de boot imagine cod. Prin apăsarea butonului Deschidere imagine a scrie cod follow-conductoare:
Procedura TForm1.ButtonlClick (Expeditor: TObject);
începe
dacă OpenPictureDialogl.Execute apoi Imagel.Picture.LoadFromFile (OpenPictureDialogl.FileName);
se încheie;
Prima linie prezinta imaginea standard de fereastra de deschidere. Pentru a face acest lucru, pur și simplu apel metoda Execute OpenPictureDialogl componenta t. E. scrie OpenPictureDialogl.Execute. Această metodă returnează o valoare booleană.
Dacă este adevărat, atunci utilizatorul selectează un fișier, sau de anulare a făcut clic. De aceea th verificăm rezultatul apelarea metodei Execute cu ajutorul:
în cazul în care OpenPictureDialogl.Execute atunci
Dacă este selectat un fișier, apoi următorul cod:
Să examinăm structura pieselor. În componenta imagel are o proprietate imagine. Această proprietate are un tip de obiect (și, prin urmare, proprietățile și metodele lor) TPicture. Această facilitate este proiectat pentru a lucra cu imagini de aproape orice tip. El este versatil suficient, după cum vom vedea în curând.
Pentru a descărca imaginea, vom folosi metoda LoadFromFile (descărcare auto-Tink a fișierului) imagine a obiectului. Ca singurul parametru al acestei meto-deci trebuie să specificați un nume de fișier sau o cale completă, în cazul în care imaginea este locat-ditsya nu în același folder ca și programul în sine.
Am ales numele fișierului utilizând un standard de ferestre, și calea completă către fișierul este în proprietatea componentei FileName OpenPictureDialogl.
Totul este destul de simplu. Acum, încercați să executați programul și uita-te la rezultatul muncii sale. În aspectul deschis fișier la ceea ce poate fi deschis tipuri de fișiere. În funcție de versiune și de configurare coli instalat cinstește tipuri pot fi 1 - 3 - BMP, ICO și WMF.
Să ne învețe munca noastră program cu format JPEG. Nu-ți face griji, nu este dificil și nu avem nevoie pentru a scrie algoritm complex de imagine de decompresie.
În Delphi are deja tot ce ai nevoie, trebuie doar să-l conectați la proiect.
Pentru a începe, navigați la clauza utilizări ale proiectului și conectarea la modulul jpeg. Acest modul descrie tot ce ai nevoie pentru a lucra cu formatul de imagini JPEG-TION.
În principiu, este suficient. Rămâne doar pentru a face fereastra deschisă fișier pentru a afișa filtrul pe tipul de fișier. Pentru a face acest lucru, selectați componentele OpenPictureDialogl și dublu-clic pe Filtrul de proprietate. Ne-eds va deschide fereastra de setări de filtrare, așa cum se arată în figura:
În această fereastră, există câteva spatele camerei liniile completează. Cifra este doar trei. Cea de a patra linie (prima linie goală) scrie „Fișiere JPEG“ în prima coloană și coloana a doua, scrie „* .jpg“. Puteți apăsa OK și porniți programul. Acum, în deschiderea ferestrei unui fișier imagine, puteți selecta tipul de .jpg și deschideți fișierul. Acesta va fi, de asemenea, încărcate în componenta imagel, chiar și în ciuda algoritmul său de compresie complexe și alt tip de stocare a datelor.
Acum vom încerca să faceți upgrade exemplul și accesul la conținutul imaginii. Pentru a face acest lucru, vom copia imaginea utilizând transparența. Cum? Acum ai învățat.
Crearea unui eveniment OnPaint handler pentru forma principală într-un exemplu deja stabilit pe-mi. În cazul procedurii de FormPaint, tastați următoarele:
Și în acest proces, în cazul în care încărcăm o imagine, trebuie să adăugați la sfârșitul metodei de apel redesenare, astfel încât, după deschiderea formularului de fișier de imagine trase din nou și a oferit
Acum, încercați să executați programul și descărcați-l într-un fișier BMP. Ar trebui să vedeți un rezultat similar cu cel prezentat în fig. 12.13. În stânga avem este imaginea de imagine image1, iar pe dreapta vom face o copie a formularului.
Receptorul CÂMP declarat ca TRect, care are forma TRect = (stânga, sus, dreapta, jos: Integer). Datorită faptului că acestea sunt în paranteze, ne-am întâlnit mai devreme. Este același lucru cu regiunea sursă. După cum picturile-ki transmise Bitmap DE LA TImage.
Ca o culoare transparenta, am folosit culoarea pixelului în poziția [1, 1] imagini TImage. Acest lucru este demonstrat de înregistrare:
Să încercăm să-l scrie un pic diferit:
TImage1. Ego_kartinka. Bitmap. Canvas. Pixel [1_po_osi_H, 1_po osi_U]
Vă rugăm să rețineți că, dacă acum încercați să deschideți unele nu BMP-fișier, programul nu se va afișa nimic. Acest lucru se datorează faptului că numai fișierele VMR- stoca imaginea lor în proprietatea Bitmap, tot restul este stocat în proprietatea sau grafic Metafișier (pentru format vectorial). Deci, acces
un JPEG-imagine, astfel încât este imposibil. Dar puteți utiliza metoda de tragerea la sorți. Pentru a face acest lucru, trebuie să se adapteze tratare a evenimentului OnPaint:
Procedura TForm1.FormPaint (Expeditor: TObj ECT);
începe
Canvas.Draw (200, 16, Imagel.Picture.Graphic);
se încheie;
Aici nu ne-am trage Bitmap, un grafic, astfel încât programul va funcționa corect.
Vector fișiere, de exemplu, formatul WMF, stoca datele lor în proprietatea Metafișier. Pentru a le afișa, Rutina evenimentului OnPaint ar fi:
Procedura TForm1.FormPaint (Expeditor: TObject);
începe
Canvas.Draw (200, 16, Image1.Picture.Metafile);
se încheie;