Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рисуем...


Страницы:   1 2

eXPell ©   (2007-03-13 14:36:00) 

Вот есть код:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,dop,kol,shag:integer;
begin
form1.Image1.Canvas.Pixels[0,0]:=rgb(length(s),0,length(s));
dop:=2;
kol:=0;
shag:=0;
for i:=0 to 900 do
begin
if kol=200 then
begin
dop:=dop+1;
shag:=0;
kol:=0;
end;
form1.Image1.Canvas.Pixels[shag,dop]:=rgb(i,0,i);
kol:=kol+1;
shag:=shag+1;
end;
end;

рисует на image три линии. когда сохраняю рисунок, то сохраняется и белый фон (так что ли). Подскажите как можно реализовать, что бы рисунок сохранялся только то что нарисовано (т.е. когда его потом в просмотрщике открываешь, чтобы были видны только эти линии)?

ЗЫ. если что я поясню)))


TRUNK   (2007-03-13 19:40:00) [1]

> [38] eXPell ©   (13.03.07 19:34)

Это всего лишь означает, что файлы на диске занимают размер, кратный 32 кб,
т.е. даже файл размером 1 байт будет занимать 32 кб. А в остальном - "не парься" :)


eXPell   (2007-03-13 19:34:00) [2]


> TRUNK ©   (13.03.07 19:26) [37]

извини, но это "хорошо", "плохо" или "не парся, все нормально"?

ЗЫ. ну не знаю я таких вещей... позор моей седой голове((( с недавнего времени комп для работы использую, а раньше игры и прочее отвлекающее ПО.


TRUNK   (2007-03-13 19:26:00) [3]

> [35] eXPell © (13.03.07 18:33)
> единственное смущает почему размер 32 кб на диске? так положено?

Значит твой диск отформатирован с размером кластера 32 кб.


default   (2007-03-13 18:39:00) [4]

eXPell ©   (13.03.07 18:33) [35]
да, всякая служебная инфа, на это несмотри


eXPell   (2007-03-13 18:33:00) [5]

вполне:)
файл с белым фоном:
Размер:255 КБ (261 306 байт)
На диске:256 КБ (262 144 байт)


файл без белого фона:
Размер:4,74 КБ (4 854 байт)
На диске:32,0 КБ (32 768 байт)


единственное смущает почему размер 32 кб на диске? так положено?


default   (2007-03-13 18:26:00) [6]

ну чё размер нормально уменьшился при сохранении?


eXPell   (2007-03-13 18:19:00) [7]

все понял. там надо
image3.Picture.Bitmap.Height:=dop;
image3.Picture.Bitmap.Width:=300;

тогда нормально:)


eXPell   (2007-03-13 18:11:00) [8]

если интересно, то вот так я делаю.
и выше приведенный код для рисования.
этот для прямоугольника.

dop:=strtoint(label1.Caption)+1;
image3.Canvas.CopyMode:=cmSrcCopy;
image3.Canvas.CopyRect(rect(0,0,300,dop),image2.Canvas,rect(0,0,300,dop));
image3.Height:=dop;
image3.Width:=300;

только вот высота и ширина не изменяется((. что опять не так?


default   (2007-03-13 17:33:00) [9]

eXPell ©   (13.03.07 17:32) [30]
ууу!
так у тебя есть координаты!
тогда по ним легко найдёшь ограничивающий рисунок прямоугольник....


eXPell   (2007-03-13 17:32:00) [10]

Нет, рисует в зависимости от введенных пользователем данных. От этих данных зависит цвет точек.
Потом такую полосочку вставляем в ворд, расстягиваем, и отчет готов)).
Но! Таких полосочек может быть уйма, и большой размер (100-200 кб при обороте в минимум 1000 файлов - напряженно хранить). Поэтому я и замарачиваюсь: самое главное что бы только сохранять, а "пустоту" (как правильно было замечено) - убирать. Вот и вся идея и цель.


default   (2007-03-13 17:26:00) [11]

или у тебя там просто за курсором мыши рисует и всё?


default   (2007-03-13 17:24:00) [12]

eXPell ©   (13.03.07 17:20) [27]
а какими примитивами пользователь у тебя может рисовать?
так прямая линия, эллипс и тд?
стирать можно кусками примитивы или только полностью?
то есть в процессе рисования меня интересует сложно-ли будет такой прямоугольник контролировать


eXPell   (2007-03-13 17:20:00) [13]


> default ©   (13.03.07 17:12) [26]

да за рамочку-то я уже знаю - набил на ней себе уже шишек. прямоугольники - думаю.
А вообще "не профессионально будет выглядеть такой подход (рамочка в смысле). За автоматизацию как никак боремся. При меньших манипуляциях пользователя - будет тот же эффект, что и при большом количестве действий со стороны пользователя - тем продукт будет выглядеть предпочтительнее в использовании"))). имхо.


default   (2007-03-13 17:12:00) [14]

eXPell ©   (13.03.07 17:03) [25]
слушай я тут подумал может ну нафиг эти прямоугольники
может просто тебе включить возможность в твою программу выделять на рисуемом изображение прямоугольник который нужно сохранить в файл?
знаешь как в пейнте рамочка такая есть потом правой кнопкой щёлкаешь и там есть опция сохранить в файл?
так проще и логичней будет я думаю


eXPell   (2007-03-13 17:03:00) [15]


> default ©   (13.03.07 16:56) [24]

во-во, я тож так сейчас подумал. По пиксельно с 1-го во 2-ой: если rgb пикселя не белый, то копируем, а если белый то останавливаемся. Но сразу проблема: а если в линии рисуемой пользователем (т.е. прогой) попадется белый... все конец идеи.
ЗЫ. над прямоугольниками подумаю))


default   (2007-03-13 16:56:00) [16]

eXPell ©   (13.03.07 16:50) [23]
вот смотри, допустим, у тебя есть битмэп на котором юзер рисует свои линии через твою программу
поскольку он рисует через твою программу ты легко можешь вычислясть границы прямоугольниками в пределах которого лежит нарисованное пользователем
в конце рисования создаёшь другой битмэп с размерами этого прямоугольника и туда копируешь прямоугольник из первого битмэпа
второй битмэп и сохраняешь


eXPell   (2007-03-13 16:50:00) [17]


> default ©   (13.03.07 16:48) [21]

какие курсы проходил?)) 5 строк... браво!!!
ага, смысл правильный)))

ЗЫ. извините, что устроил тут понимаешь ли "Поле чудес"))


default   (2007-03-13 16:49:00) [18]

я просто как в Delphi размерности сократить уже не вспомню...


default   (2007-03-13 16:48:00) [19]

Сергей М. ©   (13.03.07 16:45) [20]
ты не понял
картинка нарисованная пользователем его программы должна сохраняться в формате который можно просмотреть не только через его программу
его идея с сокращение размерностей картинки по её содержимому нормальная, кому эти пустоты нужны
накрайняк в любом графическом редакторе их можно добавить


Сергей М.   (2007-03-13 16:45:00) [20]


> eXPell ©   (13.03.07 16:40) [18]


тебе ж сказали уже - файл, хранящий вектор(2D-вектор в твоем случае), займет максимум десяток-другой байт)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо