Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Виды изображений⇐ ПредыдущаяСтр 13 из 13
Все изображения можно разделить на две группы: растровые и векторные. Растровые изображения представляют собой двумерный массив точек, для каждой из которых независимо может быть задан свой цвет, как показано на следующем рисунке: Например, экран монитора представляется как растровое изображение. Достоинства: возможность представлять изображения любой сложности, например фотореалистичные. Недостатки: для изображений с большим количеством цветов и большим разрешением требуется большой объем памяти, причем занимаемый объем памяти растет квадратично при росте разрешения; плохие возможности масштабирования, так как, например, при увеличении изображения будет увеличиваться только размер точек, что приведет к значительному ухудшению качества. В Windows стандартный формат представления растровых изображений – битовые карты (Bitmap), хранящиеся в файлах с расширением BMP. Векторные изображения формируются из геометрических примитивов (отрезков, окружностей, эллипсов и т.д.), например: Достоинства: малый объем занимаемой памяти, возможность масштабирования. Недостатки: возможность представлять только достаточно простые изображения, в связи с чем используются для представления схем, чертежей, деловой графики и т.д. Стандартный формат хранения векторных изображений в Windows – так называемые метафайлы (Metafile) с расширением WMF.
10.3. Класс TPicture Для представления изображений в Delphi используется класс
В дальнейшем будем рассматривать только растровые изображения.
10.4. Класс TBitmap Класс TBitmap используется в Delphi для представления растровых изображений, содержит свойства, приведенные в следующей таблице.
Если никакого изображения не загружено, растровое изображение, представляемое классом TBitmap, является пустым, т.е. его ширина и высота равны 0. Поэтому, для отображения графической информации необходимо сначала задать размеры изображения, содержащегося в элементе TImage. Например, эти размеры можно сделать равными размерам самого элемента TImage, в результате чего для рисования можно будет использовать всю занимаемую этим элементом на форме область. Для иллюстрации основных свойств классов TImage, TPicture и TBitmap рассмотрим следующий пример формы, содержащей элемент «Изображение» и кнопку: Процедура обработки события от нажатия кнопки Button1 задает размеры растрового изображения, содержащегося в элементе Image1, равными размерам этого элемента. Пример PROCEDURE TForm1.Button1Click(Sender: TObject); BEGIN Image1.Picture.Bitmap.Width: =Image1.Width; Image1.Picture.Bitmap.Height: =Image1.Height; END;
Уже из приведенного примера видно, что обращаться к свойствам глубоко вложенных друг в друга классов крайне неудобно. В языке Паскаль в таких случаях можно применять описанный далее оператор.
10.5. Оператор WITH Синтаксис WITH < Структурная переменная> DO < Оператор>
Оператор WITH применяется для упрощения доступа к свойствам структурных переменных (типа «запись», «объект» или «класс»). Действие оператора можно продемонстрировать, переписав соответствующим образом тело процедуры, приведенной в предыдущем примере. Пример WITH Image1.Picture.Bitmap DO BEGIN Width: =Image1.Width; Height: =Image1.Height; END;
10.6. Класс TCanvas Класс TCanvas предоставляет средства для рисования на различных типах изображений, например на растровых изображениях, представляемых классом TBitmap. Основные используемые для рисования процедуры класса TCanvas приведены в следующей таблице.
Продемонстрируем использование процедур класса TCanvas на примере изображения треугольника с известными сторонами. Расположим треугольник, как показано на следующем рисунке: , Перепишем процедуру обработки события от нажатия кнопки Пример PROCEDURE TForm1.Button1Click(Sender: TObject); VAR a, b, c, p, s, h: Real; BEGIN WITH Image1.Picture.Bitmap DO BEGIN Width: =Image1.Width; Height: =Image1.Height; END;
a: =150; b: =100; c: =120;
p: =(a+b+c)/2; s: =Sqrt(p*(p-a)*(p-b)*(p-c)); WITH Image1.Picture.Bitmap.Canvas DO BEGIN MoveTo(0, 0); LineTo(Round(a), 0); h: =2*s/a; LineTo(Round(Sqrt(Sqr(c)-Sqr(h))), Round(h)); LineTo(0, 0); END; END;
Результат работы программы представлен на следующем рисунке.
|