![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приближение битмапа.
snake-as © (2009-05-31 13:57:00)Здравствуте. У меня программа рисует битап на определенной площади канваса. Делаю я это так:
dRect := Bounds(0, 0, MainForm.Width, MainForm.Height);
sRect := Bounds(0, 0, MainForm.Width, MainForm.Height);
Canvas.CopyRect(dRect,pic.Canvas,sRect);
Мне нужно сделать приближение, т.е. чтобы картинка была больше, но и область отображения была также, т.е. увеличить dRect не выйдет. Подскажите, пожалуйста, как можно это осуществить? Извините, если вопрос фигово поставлен, башка просто не варит. Заранее спасибо!
Юрий Зотов (2009-06-02 13:05:00) [1]> antonn © (02.06.09 12:55) [24]
> То, что source rect можно взять поменьше он не догадался наверное
Так ему в первом же посте об этом было сказано. А во втором он сказал, что этот вариант не подходит. Вот и получились бочка с бутылкой.
antonn (2009-06-02 12:55:00) [2]
> то есть, ему надо думать и менять постановку.
просто переформулировать задачу, зачем так зарываться в буквоедство и упирать на то, что задача в его постановке не решаема :)
насколько я понял (по одной из версий :)) автору нужен зум, но его не устраивает зум способом разворачивания формы. То, что source rect можно взять поменьше он не догадался наверное :)
Юрий Зотов (2009-06-02 12:40:00) [3]> Anatoly Podgoretsky © (02.06.09 07:40) [21]
А я даже и не спорю. Я хочу, чтобы автор понял, что если нельзя ни увеличивать dRect, ни уменьшать sRect, то задача решения не имеет. Даже теоретически не имеет.
Поэтому в ТАКОЙ постановке никакие Stretch ему не помогут - то есть, ему надо думать и менять постановку. Вот я и хочу, чтобы он это понял.
А спорить тут не с чем. С законами геометрии не поспоришь.
Dennis I. Komarov (2009-06-02 12:04:00) [4]
> Он "плюнул" вопрос и самоустранился.
налетели... испугали... :)
Anatoly Podgoretsky (2009-06-02 07:40:00) [5]
> Юрий Зотов © (02.06.09 01:05) [15]
Юрий мог бы не приводить, ты прекрасно все поинмаешь, а споришь от - не знаю от чего споришь.
Германн (2009-06-02 02:17:00) [6]
> тем более все так скучно, автора не прессуют, спорите м/у
> собой потихоньку, аж не прицепишься... %)
>
А как тут автора "прессовать"? Он "плюнул" вопрос и самоустранился.
Но некоторых Мастеров сей вопрос заинтересовал. Чем? Ну я и сам не знаю.
antonn (2009-06-02 02:06:00) [7]чего не ожидал, тут просто двойственное понятие че нужно автору :)
тем более все так скучно, автора не прессуют, спорите м/у собой потихоньку, аж не прицепишься... %)
Германн (2009-06-02 01:54:00) [8]
> antonn © (02.06.09 01:44) [17]
>
> смысл тут спорить, если у автора недостаточно понятное описание
> желания :)
>
От тебя такого не ожидал! Но тут ты прав!
antonn (2009-06-02 01:44:00) [9]смысл тут спорить, если у автора недостаточно понятное описание желания :)
Германн (2009-06-02 01:20:00) [10]
> Юрий Зотов © (02.06.09 01:05) [15]
> > Юрий Зотов © (31.05.09 14:14) [1]
> > раз нельзя увеличивать dRect, то надо уменьшать sRect.
>
>
> > snake-as © (31.05.09 14:57) [2]
> > этот вариант не подходит.
> После чего пришли к бочке и бутылке.
>
После чего следует прийти к варианту [7]!
Ну сколько раз нужно ещё это повторять! ?
:)
Ну конечно. Если кого сразу тянет к "бочке и бутылке", то тут я пас. Раз тянет, то ...
Юрий Зотов (2009-06-02 01:05:00) [11]> Anatoly Podgoretsky © (02.06.09 00:59) [14]
> уменьшается RECT первого
Если бы. Пару цитат приведу:
> Юрий Зотов © (31.05.09 14:14) [1]
> раз нельзя увеличивать dRect, то надо уменьшать sRect.
> snake-as © (31.05.09 14:57) [2]
> этот вариант не подходит.
После чего пришли к бочке и бутылке.
Anatoly Podgoretsky (2009-06-02 00:59:00) [12]> Юрий Зотов (02.06.2009 0:16:12) [12]
Юрий, увеличение идет меньшего прямоугольника во второй.
Приерно так, в цикле уменьшается RECT первого и выводится на второй. Эти достигается эффект прилижения. Никакого чуда.
Германн (2009-06-02 00:35:00) [13]
> Юрий Зотов © (01.06.09 22:37) [10]
Ну не может автор чётко выразить свои мысли, имхо.
Я предложил свой вариант в [7] . Мой телепатор подсказывает, что это автору и нужно. Но автор молчит, значит ему ничего и не нужно.
Юрий Зотов (2009-06-02 00:16:00) [14]> Smile (01.06.09 22:54) [11]
Мы не знаем, что там у кого есть в загашнике. Мы знаем только то, что написано.
А написано следующее. Есть два одинаковых прямоугольника. В одном из них находится картинка и занимает весь его размер. Автор хочет картинку увеличить и эту увеличенную картинку отобразить ВСЮ ПОЛНОСТЬЮ во втором прямоугольнике.
А прямоугольники одинаковые и поэтому УВЕЛИЧЕННАЯ картинка ВСЯ ПОЛНОСТЬЮ туда просто не влезет. Нужно либо увеличивать размер второго прямоугольника, либо копировать в него только ЧАСТЬ картинки. И никак иначе не получится, сколь бы категорично оно ни звучало.
Ну нельзя залить бочку в бутылку, понимаете? Невозможно. Хоть лопни.
Smile (2009-06-01 22:54:00) [15]> Юрий Зотов © (01.06.09 22:37) [10]
На мой взгляд, это слишком категорично:)
Не исключено, что у автора топика есть в "загашнике" некоторое (определенное) количество "битмапов", которыми он в праве распоряжаться, по своему усмотрению, определенным образом на всевозможные манипуляции с элементами управления "мыши"
:)
Юрий Зотов (2009-06-01 22:37:00) [16]> Anatoly Podgoretsky © (01.06.09 19:58) [9]
Да хоть восемь раз. Это невозможно физически.
Нельзя залить всю 100-литровую бочку в одну поллитровую бутылку. Не уместится, сколько с бубном ни пляши.
Либо надо увеличивать емкость бутылки, либо придется ограничиться заливкой лишь части бочки.
Anatoly Podgoretsky (2009-06-01 19:58:00) [17]> Юрий Зотов (01.06.2009 9:15:08) [8]
StrechDraw
Юрий Зотов (2009-06-01 09:15:00) [18]> Anatoly Podgoretsky © (31.05.09 20:22) [6]
Угу. Только непонятно, каким волшебным образом человек собирается вписать картинку увеличенного масштаба в тот же прямоугольник-приемник всю полностью, без уменьшения прямоугольника-источника.
Германн (2009-05-31 20:44:00) [19]TScrollBox не подойдет?
Anatoly Podgoretsky (2009-05-31 20:22:00) [20]В общем все просто - оторажение динамически изменяемого (размеры) окна источника на постоянное окно приемника с маштабированием.