IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Как работать с bitmap'ом?
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Люди подскажите: как работать с bitmap'ом? Может какие стандартные есть компоненты.


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 37

Репутация: -  0  +


А что именно тебе надо ?


--------------------
Лутший язык тот, которым владееш в совершенстве.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Есть класс TBitmap - наследник TGraphics, у него свойство Canvas (тип - TCanvas), на канве можно рисовать. Рисунок можно загружать из файла или из ресурсов программы, можно записывать в файл. Можно даже объявить какой-то цвет как прозрачный. Подробнее можно посмотреть в справке по словам TBitmap, TGraphics и TCanvas, что непонятно - спросить здесь, может, кто поможет smile.gif


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Мужской

Репутация: -  2  +


Компонент ставишь и юзаешь!


--------------------
* Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Во время расчета строится график. Если строить его по TImage стандартными методами, типа Canvas.Line получается долго и изображение мигает. Хочу что-бы это делалось быстро и без миганий. ???


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Да, сталкивался с такой проблемой. Как раз тогда я и допер создать в памяти объект TBitmap, рисовал на его канве (теми же методами, что и на TImage), а когда все нарисовал, бросил его на TImage: Image1.Canvas.Draw(0,0,bitmap). Мигать перестало, и ускорилось намного.

А в 7-х дельфи, говорят, есть какое-то свойство DoubleBuffering у формы... говорят, что оно как раз "чтобы не мигало". Сам не пробовал, не знаю...


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Сделал через TBitMap. Теперь не мигает, выводит быстро, но встает вопрос: а можно ли это изображение отмасштабировать? Например, вывести на экран только часть полного рисунка в BitMap, а потом, чтобы ещё и передвигаться по нему можно было.


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


так по идее... сделать его побольше, когда на Image кинешь его, там скроллбары появятся


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Ни фига не получается. Он просто сжимает рисунок до размеров Image'а.


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Свойство AutoSize у Image проставлено в false? если нет, то поставь, и будет счастье   ;D Если оно и так false, то я не знаю


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Сделал AutoSize=false, вроде получилось, только скроллы не появляются. Я на Image кидаю через Draw, а там сразу задаётся прямоугольник, который хочешь отобразить. Наверно поэтому и не получается.


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Вот. Точно должно работать. Кидаешь на форму TScrollBox, в него помещаешь TImage, у Image свойства: AutoSize - true, stretch - false (в предыдущем посте я похоже как раз перепутал AutoSize и Stretch...:-/ Stretch отвечает за растяжение-сжатие рисунка, AutoSize - за автоматическое изменение размера самого TImage'a). Вроде все сразу работает.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Если AutoSize=true, то вообще ничего не отображается, потому что этот гад скатывает Image до размера 0х0.
В целом я конечно сделал, но работает более чем странно. Размер Image увеличивается, появляются скроллы, но изображение остаётся того размера, которого Image было первоначально. В общем на словах объяснить трудно. В принципе могу сбросить по мылу мою пробную программку.


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


0х0 даже после того как кинешь туда рисунок? Странно, конечно, но тогда можно попробовать поставить размеры Image'a вручную.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 23

Репутация: -  0  +


Дык так и пришлось сделать. Всё равно глюки.


--------------------
Человек должен думать, а компьютер работать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 12:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name