. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
подробно о график<strong>е</strong><br />
Объ<strong>е</strong>кт Graphics<br />
Посмотрим на добавл<strong>е</strong>нный к визуализатору м<strong>е</strong>тод R e s i z e l m a g e {). Он<br />
начина<strong>е</strong>т с создания объ<strong>е</strong>кта B i t m a p тр<strong>е</strong>бу<strong>е</strong>мого разм<strong>е</strong>ра. Зат<strong>е</strong>м при<br />
мощи м<strong>е</strong>тода G r a p h i c s . F r o m l m a g e О созда<strong>е</strong>тся о б ъ <strong>е</strong> к т G r a p h i c s и<br />
использу<strong>е</strong>тся м<strong>е</strong>тод D r a w l m a g e () этого объ<strong>е</strong>кта для отображ<strong>е</strong>ния картинки<br />
на объ<strong>е</strong>кт<strong>е</strong> Bitmap. О братит<strong>е</strong> внимани<strong>е</strong>, каким образом м<strong>е</strong>тоду<br />
D r a w l m a g e {) п<strong>е</strong>р<strong>е</strong>даются парам<strong>е</strong>тры w i d t h и height. Им<strong>е</strong>нно в этот мом<strong>е</strong>нт<br />
осущ<strong>е</strong>ствля<strong>е</strong>тся масштабировани<strong>е</strong>. Након<strong>е</strong>ц вам возвраща<strong>е</strong>тся только<br />
что созданный объ<strong>е</strong>кт Bitmap, который можно использовать в кач<strong>е</strong>ств<strong>е</strong><br />
фонового изображ<strong>е</strong>ния улья или анимированного рисунка пч<strong>е</strong>лы.<br />
ф ормы и эл<strong>е</strong>м<strong>е</strong>нт ы<br />
управл<strong>е</strong>ния снабж<strong>е</strong>ны м <strong>е</strong> <br />
т одом CreateGraphicsQj<br />
который возвращ а<strong>е</strong>т<br />
^<br />
Впроч<strong>е</strong>м,<br />
пю ои<strong>е</strong>м ^<br />
скоро<br />
с^ро Ы вс<strong>е</strong><br />
увидит <strong>е</strong> собств<strong>е</strong>нными<br />
глазами.<br />
/<br />
Вы п<strong>е</strong>р<strong>е</strong>да<strong>е</strong>т<strong>е</strong> м <strong>е</strong>т о<br />
ду изображ<strong>е</strong>ни<strong>е</strong> с данными<br />
о том. какую<br />
ширину и высоту оно<br />
должно им<strong>е</strong>ть.<br />
public static Bitmap Resizelmage(Bitmap picture, int width, int height) {<br />
}<br />
Bitmap resizedPicture = new Bitmap(width, height);<br />
using (Graphics graphics = Graphics,Fromlmage(resizedPicture)) {<br />
graphics.Drawlmage(picture, 0, 0, width, height);<br />
} ^ ш т о д FromlmageO возвраш,а<strong>е</strong>т новый обш кт drapkics,^<br />
V _ позволяющий вст авлят ь графич<strong>е</strong>ски<strong>е</strong> f<br />
return resizedPicture; браж<strong>е</strong>ни<strong>е</strong>. Воспользуйт<strong>е</strong>сь функци<strong>е</strong>й IntelliSense аля у<br />
ч<strong>е</strong>ния м <strong>е</strong>т одов, принадл<strong>е</strong>жащих классу Graphics. Н априм<br />
<strong>е</strong>р, м <strong>е</strong>т од Praw lm ageQ копиру<strong>е</strong>т<br />
resizedPicture с координатой (О. О) и<br />
f<br />
соот в<strong>е</strong>т ст вии с заданными парам <strong>е</strong>т рам и w id th и height.<br />
Масштабировани<strong>е</strong> изоб|>а)к<strong>е</strong>ния<br />
П<strong>е</strong>р<strong>е</strong>тащ ит<strong>е</strong> кнопку на форму F i e l d и добавьт<strong>е</strong> к н<strong>е</strong>й этот код,<br />
создающий эл<strong>е</strong>м<strong>е</strong>нт P i c t u r e B o x разм<strong>е</strong>ром 100 хЮО пикс<strong>е</strong>лов<br />
с ч<strong>е</strong>рной лини<strong>е</strong>й по краю, что позволя<strong>е</strong>т оц<strong>е</strong>нить <strong>е</strong>го разм<strong>е</strong>р.<br />
Зат<strong>е</strong>м м<strong>е</strong>тод R e s i z e l m a g e {) масштабиру<strong>е</strong>т картинку пч<strong>е</strong>лы до<br />
80 X 40 пикс<strong>е</strong>лов и назнача<strong>е</strong>т свойству Image. Посл<strong>е</strong> добавл<strong>е</strong>ния<br />
к форм<strong>е</strong> эл<strong>е</strong>м<strong>е</strong>нта P i c t u r e B o x появля<strong>е</strong>тся пч<strong>е</strong>ла,<br />
p r i v a t e v o i d b u t t o n l _ C l i c k ( o b j e c t s e n d e r , E v e n t A r g s e)<br />
{<br />
}<br />
P i c t u r e B o x b e e P i c t u r e = n e w P i c t u r e B o x 0 ;<br />
b e e P i c t u r e . L o c a t i o n = n e w P o i n t d O , 1 0 ) ;<br />
b e e P i c t u r e . S iz e = n e w S iz e d O O , 1 0 0 ) ;<br />
b e e P i c t u r e . B o r d e r S t y l e = B o r d e r S t y l e . F i x e d S i n g l e ;<br />
b e e P i c t u r e . I m a g e = R e n d e r e r . R e s i z e l m a g e (<br />
P r o p e r t i e s . R e s o u r c e s . B e e _ a n i m a t i o n _ l , 8 0 , 4 0 ) ;<br />
C o n t r o l s . A d d ( b e e P i c t u r e ) ;<br />
Вы наблюда<strong>е</strong>т<strong>е</strong> проц<strong>е</strong>сс масштабирования<br />
изображ<strong>е</strong>ния—сжатая карт инка'^<br />
намного м<strong>е</strong>ньш<strong>е</strong> эл<strong>е</strong>м<strong>е</strong>нта PictureBox.<br />
И м<strong>е</strong>тод ResizelmageQ ум<strong>е</strong>ньшит р а з<br />
м<strong>е</strong>р эл<strong>е</strong>м<strong>е</strong>нта.<br />
602 глава 13<br />
^ТЬ<strong>е</strong>й<strong>е</strong>и<br />
^<br />
Это прим<strong>е</strong>р. Закончив <strong>е</strong>го,<br />
удалит<strong>е</strong> кнопку и код.<br />
М<strong>е</strong>тод Resizelmage ( )<br />
созда<strong>е</strong>т объ<strong>е</strong>кт<br />
Graphics, рисующий<br />
на н<strong>е</strong>видимом<br />
объ<strong>е</strong>кт<strong>е</strong> Bitmap. Он<br />
возвраща<strong>е</strong>т о^<strong>е</strong>кт<br />
Bitmap, который<br />
и отобража<strong>е</strong>тся на<br />
форм<strong>е</strong> или эл<strong>е</strong>м<strong>е</strong>нт<strong>е</strong><br />
KctureBox.