Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать увеличение, битмапа 
:(
    Опции темы
denmoroz
  Дата 11.2.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



Как сделать увеличение битмапа (Как в компоненте ImageControls)? smile smile smile
PM MAIL   Вверх
s-mike
Дата 11.2.2006, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Посмотри код и FAQ.
PM MAIL WWW   Вверх
Snowy
Дата 12.2.2006, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



TBitmap.StretchDraw
PM MAIL   Вверх
denmoroz
Дата 14.2.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



Заюзал код из FAQ:
Код

function ScalePercentBmp(bitmp: TBitmap;
 iPercent: LongInt): Boolean;
var 
 TmpBmp: TBitmap; 
 ARect: TRect; 
 h, w: Real; 
 hi, wi: Integer; 
begin 
 Result := False; 
 try 
   TmpBmp := TBitmap.Create; 
   try 
     h := bitmp.Height * (iPercent / 100); 
     w := bitmp.Width * (iPercent / 100); 
     hi := StrToInt(FormatFloat('#', h)) + bitmp.Height; 
     wi := StrToInt(FormatFloat('#', w)) + bitmp.Width; 
     TmpBmp.Width := wi; 
     TmpBmp.Height := hi; 
     ARect := Rect(0, 0, wi, hi); 
     TmpBmp.Canvas.StretchDraw(ARect, Bitmp); 
     bitmp.Assign(TmpBmp); 
   finally 
     TmpBmp.Free; 
   end; 
   Result := True; 
 except 
   Result := False; 
 end; 
end;


Но при уменьшении до начальныз размеров, картинка становится непонятной.

Как исправить?
PM MAIL   Вверх
Snowy
Дата 14.2.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Дык чего ты ее дергаешь туда-сюда?
Храни исходный битмап и масштабируй из него.
Иначе обязательно столкнешься с потерями качества.
PM MAIL   Вверх
denmoroz
Дата 14.2.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



Snowy, А если в увеличенном битмапе юзер внесёт какие-небудь изменения? (Я пишу граф. редактор) smile
PM MAIL   Вверх
Snowy
Дата 14.2.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Ты вноси изменения в оригинал и тут же перерисовывай в увеличенный вариант.
Нельзя постоянно масштабировать. Иначе в итоге каша получится.
Юзер нарисовал линию из точки А в точку Б - отрисуй такую же, по пропорциям в оригинал и снова отрисуй увеличенный оригинал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0768 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.