Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.

В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.

Для кого предназначена эта книга

Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.

Основные темы книги

• Все особенности языка C#

• C# и объектно-ориентированное программирование

• Приложения и службы Windows

• Создание web-страниц и web-служб с помощью ASP NET

• Сборки .NET

• Доступ к данным при помощи ADO NET

• Создание распределённых приложений с помощью NET Remoting

• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

dc.FillEllipse(SolidAzureBrush, ellipseBounds);

dc.DrawLine(BrickWidePen, rectangleBounds.Location,

ellipseBounds.Location + ellipseBounds.Size);

}

base.OnPaint(e);

}

А это результат:

Отметим что толстая диагональная линия лежит поверх прямоугольника и эллипса - фото 107

Отметим, что толстая диагональная линия лежит поверх прямоугольника и эллипса, так как это был последний нарисованный элемент.

Вывод изображений

Одним из наиболее распространенных действий, которое может понадобиться сделать с помощью GDI+, является вывод изображений, уже существующих в файле. Это значительно проще, чем рисование своего собственного интерфейса пользователя, так как изображение уже было нарисовано. По сути необходимо только загрузить файл и приказать GDI+ вывести его. Изображение может быть простым графическим рисунком, пиктограммой или сложным изображением, таким как фотография. Можно выполнить некоторые манипуляции с изображением, такие как растягивание и вращение, или вывести только его часть.

В данном разделе представим пример, затем обсудим несколько вопросов, о которых необходимо знать при выводе изображений. Мы можем сделать это, так как код для вывода изображений очень прост.

Image MyImage = Image.FromFile("FileName"!);

FromFile()является статическим членом класса Imageи обычным способом создает экземпляр изображения. Файл может быть любым из обычно поддерживаемых форматов графических файлов, включая .bmp, .jpg, .gifи .png.

Вывод изображения требует также только одну строку кода в предположении, что имеется подходящий экземпляр объекта Graphics:

dc.DrawImageUnscaled(MyImage, TopLeft);

В этой строке кода dcпредполагается экземпляром объекта Graphics, MyImageявляется Image, который будет выведен, a TopLeft— структурой Point, которая хранит координаты устройства, где требуется поместить изображение. Трудно представить себе что-то более простое.

По всей вероятности, изображения являются областью, в которой разработчики знакомые с GDI, заметят наибольшие различия с GDI+. В GDI работа с изображениями была достаточно непредсказуемой. Вывод изображения включал несколько нетривиальных шагов. Если изображение задавалось как битовое, загрузка его была относительно простой, но загрузка любого другого типа файла включала последовательность вызовов объектов OLE. В действительности вывод загруженного изображения на экран включал получение для него дескриптора, выбор его в памяти контекста устройства и затем выполнение блочного переноса между контекстами устройств. Хотя контексты устройств и дескрипторы, по-прежнему находятся за сценой и понадобятся, если придется делать (ложное редактирование изображений в коде программы, простые задачи теперь погружены в объектную модель GDI+.

Мы проиллюстрируем процесс вывода изображения с помощью примера DisplayImage. Этот пример просто выводит файл .jpgв основном окне приложения. Чтобы упростить код, путь доступа файла .jpgжестко закодирован в приложении (поэтому при выполнении приложения необходимо изменить его в соответствии с местоположением файла на используемой системе). Выводимый файл .jpgявляется групповой фотографией участников встречи COMFest.

Как обычно в этой главе, проект DisplayImageявляется стандартным приложением Windows, созданным с помощью VisualStudio.NET. Мы добавляем следующее поле в класс Form1:

Image Piccy;

Затем загружаем файл в процедуру InitializeComponent.

private void InitializeComponent() {

this.components = new System.ComponentModel.Container();

this.Size = new System.Drawing.Size(600, 400);

this.Text = "Display COMFEst Image";

this.BackColor = Color.White;

Piccy =

Image.FromFile(@"C:\ProCSharp\Chapter21\Display Image\CF4Group.jpg");

this.AutoScrollMinSize = Piccy.Size;

}

Отметим, что размер изображения в пикселях задается как его свойство Size, которое используется для задания области документа. Изображение выводится в методе OnPaint():

protected override void OnPaint(PaintEventArgs e) {

Graphics dc = e.Graphics;

dc.DrawImageUnscaled(Piccy, this.AutoScrollPosition);

base.OnPaint(e);

}

Выбор this.AutoScrollPositionв качестве координатного устройства гарантирует, что окно будет прокручиваться правильно, при этом до начала прокручивания изображение будет располагаться с верхнего левого угла клиентской области.

Наконец, сделаем еще одно замечание об изменениях, сделанных в коде метода Form1.Dispose(), созданном мастером:

public override void Dispose() {

base.Dispose();

if (components != null) components.Dispose();

Piccy.Dispose();

}

Удаление изображения, когда оно не требуется, является важной задачей, так как изображения обычно требуют много памяти. После вызова Image.Dispose()экземпляр Imageбольше не ссылается на какое-либо реальное изображение и поэтому не может больше выводиться (если не будет загружено новое изображение).

Выполнение этого кода создает результат:

COMFest wwwcomfestcouk является неформальной группой разработчиков в - фото 108

COMFest (www.comfest.co.uk) является неформальной группой разработчиков в Великобритании, которые встречаются для обсуждения самых новых технологий, обмена идеями и т. д. Снимок включает всех участников COMFest 4, за исключением автора этой главы, который фотографировал.

Вопросы, возникающие при манипуляциях с изображениями

Вывод изображений выполнить легко, но все же требуется некоторое понимание описанной ниже технологии.

Наиболее важным моментом при работе с изображениями является то, что они всегда прямоугольные. Это не просто удобство для людей. Такая форма связана с тем, что все современные графические платы имеют встроенное оборудование, которое может очень эффективно копировать блоки пикселей из одного участка памяти в другой. При условии, что блок пикселей представляет прямоугольную область, аппаратное ускорение выполняется практически как одна операция, и поэтому будет очень быстрым. На самом деле это ключ к современной высокопроизводительной графике. Такая операция называется переносом битовых блоков (BitBlt). Image.DrawImageUnscaled()внутренне использует BitBlt, вот почему можно видеть огромное изображение, содержащее, возможно, миллионы пикселей (фотография из примера имеет 104975 пикселей) появляющимся почти мгновенно. Если бы компьютер должен был копировать изображение на экран пиксель за пикселем, то изображение постепенно появлялось бы в течение нескольких секунд.

Метод BitBltочень эффективен, поэтому почти все операции рисования и манипуляции с изображениями выполняются с его помощью. Даже некоторое редактирование изображений будет делаться с помощью BitBlt, перенося части изображений между контекстами устройств, которые представляют области памяти. При использовании GDI функция BitBlt()из API Windows 32 была, наверное, самой важной и широко используемой функцией для манипуляции изображениями, хотя в GDI+ операции BitBltпо большей части скрыты объектной моделью GDI+.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x