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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Масштабирование изображения со свойством Streched 
V
    Опции темы
Chydik
Дата 17.10.2012, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пытаюсь изменить рамер изображения через трекбар
Код

procedure TForm1.trckbr1Change(Sender: TObject);
var
  i: integer;
begin
   imgBefore.Height :=  ImgY + (trckbr1.Position);
   imgBefore.Width  :=  ImgX + (trckbr1.Position);
   imgBefore.Canvas.StretchDraw(
      Rect(imgBefore.Left,imgBefore.Top,ImgX + (trckbr1.Position),ImgY + (trckbr1.Position)), OrignBitmap);
end;

//OrignBitmap - Битмап исходного изображения
//В свойствах imgBefore(TImage) стоит тру на Streched и Proportional 


Работает все замечательно при уменьшении изображения trckbr1.Position <= 0, но при увеличении размер изображения меняется и изображение увеличивается только при этом идет обрезка справа и снизу.

Из-за чего это может быть?

Реальный размер:
user posted image
Уменьшение размера:
user posted image
Увеличение размера:
user posted image



PM MAIL   Вверх
Illusion Dolphin
Дата 17.10.2012, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

function TImage.GetCanvas: TCanvas;
var
  Bitmap: TBitmap;
begin
  if Picture.Graphic = nil then
  begin
    Bitmap := TBitmap.Create;
    try
      Bitmap.Width := Width;
      Bitmap.Height := Height;
      Picture.Graphic := Bitmap;
    finally
      Bitmap.Free;
    end;
  end;
  if Picture.Graphic is TBitmap then
    Result := TBitmap(Picture.Graphic).Canvas
  else
    raise EInvalidOperation.Create(SImageCanvasNeedsBitmap);
end;


Отсюда следует что Вы увеличиваете размер компонента, но рисуете на внутреннем объекте TBitmap, который остаётся прежних размеров. 


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Chydik
Дата 18.10.2012, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Illusion Dolphin Огромное спасибо изменяю размеры битмапа имеджа и все превосходно срабатывает.

Это сообщение отредактировал(а) Chydik - 18.10.2012, 09:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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