![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по клонированию
49 Cent © (2006-05-02 16:32:00)С помощью такого кода создаю TRotateimage(обычный Image, только можно менять угол)
Fa:=TRotateimage.Create(Self);
Fa.Picture.LoadFromFile(IntToStr(i)+'.bmp');
Fa.OnMouseMove:=rotateimage1.OnMouseMove;
Fa.OnMouseUp:=rotateimage1.OnMouseUp;
Fa.OnMouseDown:=rotateimage1.OnMouseDown;
Fa.PopupMenu:=PopupMenu1;
Также есть PopupMenu1. В этом компоненте заложены 4 варианта положения картинки: 45,90,180,270 градусов.
Теоритически все должно смотреться следующим образом:
Юзер кликает на кнопку, происходит клонирование картинки, затем пользователь кликает на правую кнопку, всплывает менюшка PopupMenu и уже в этом меню пользователь выбирает нужный угол и как следствие клонированная картника поворачивается.
Вопрос собственно такой! Какой код может выполнить одну и туже задачу для только что кланированной картинки?
49 Cent (2006-05-02 16:49:00) [21]Вопросов нет! Круто! НО программа почти написана. Куча манипуляций заточенно именно на Rotateimage и на клонирование... наверняка должно быть решение задачи.
ЛшдлуттнСфе (2006-05-02 16:46:00) [22]примечание: пример из стандартной справки Делфи.
KilkennyCat (2006-05-02 16:46:00) [23]Пример работы с битмапом:
var
BitMap1,BitMap2 : TBitMap;
MyFormat : Word;
begin
BitMap2 := TBitMap.Create;
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromFile('c:\Program Files\common Files\Borland Shared\Images\Splash\256color\factory.bmp');
BitMap2.Assign(BitMap1); // Copy BitMap1 into BitMap2
BitMap2.Dormant; // Free up GDI resources
BitMap2.FreeImage; // Free up Memory.
Canvas.Draw(20,20,BitMap2); // Note that previous calls don't lose the image
BitMap2.Monochrome := true;
Canvas.Draw(80,80,BitMap2);
BitMap2.ReleaseHandle; // This will actually lose the bitmap;
finally
BitMap1.Free;
BitMap2.Free;
end;
end;
так что, все очень просто. можно грузить картинку из файла, ресурса, потока. Можно рисовать и конвертировать как угодно.
49 Cent (2006-05-02 16:40:00) [24]Ну, признаться, я ламос и с Bitmap работать не умею да и текущий вариант меня бы очень устроили если бы возможность поворачивать клонированную картинку.
KilkennyCat (2006-05-02 16:37:00) [25]Понятно. В этом случае я бы просто работал с TBitMap. Алгоритмов поворотов и прочей трансформаций в сети тьма-тьмущая.
49 Cent (2006-05-02 16:35:00) [26]Понимаю, что вопрос не умно сформулирован, поэтому доп-но еще маленький простодушный комментарий.
Когда есть одна картинка и она точна известна, то ее можно управлять по простому: к примеру rotateimage1.angel:=90;
А если картинка сгенерирована в Run time, то фиг его знает как к ней обращаться! Подскажите, а?
Заранее благодарен.