|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Масштабирование в Linux
Здравствуйте.Подскажите пожалуйста как решить следующую проблему!!!
Вообщем пытаюсь написать программу которая работает к картой ( карта это BMP файл 6960 на 4922 точек, размер почти 100 мегобайт ).Работа заключается в масштабировании,таскании карты и рисовании на ней ...Когда писал код под Windows все работает без проблем!!! Теперь понадобилось перенести программу на Linux...И начались проблемы с масштабированием. Пробовал писать и в Delphi7 (CLX Application) и Kylix3!!! Часть кода: Код:
procedure TMainForm.FormShow(Sender: TObject); begin My_BMP:=TBitmap.Create; - рабочий BitMap My_BMP.LoadFromFile('map.bmp'); Move_BMP:=TBitmap.Create; - масштабированный BitMap end; procedure TMainForm.PaintBoxPaint(Sender: TObject); begin move_BMP.Canvas.StretchDraw( Rect(0,0,w,h ), My_BMP ); PaintBox.Canvas.Draw(ofsx,ofsy,Move_BMP); end; w и h - для изменения масштаба ofsx и ofsy - для таскания карты по экрану При изменении масштаба увеличиваю(уменьшаю) w и h и задаю размер Move_BMP: move_BMP.Width:=w; move_BMP.Height:=h; PaintBox.Refresh При уменьшении проблем нет,но если увеличивать больше чем размер самой картинки, то вылетает ошибка 'Invalid canvas state request'!!! Пробовал использовать CopyRect вообще никакого эффекта масштабирования!!! Заранее спасибо!!! Последний раз редактировалось Admin, 27.01.2009 в 10:23. |