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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение размера TBitmap, найти ошибку 
:(
    Опции темы
VoAnt
Дата 10.10.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Очень огромное спасибо!
PM MAIL ICQ   Вверх
offline
Дата 12.10.2005, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



VoAnt

Код

procedure CopyGraphicToBitmap(Graphic: TGraphic; Bitmap: TBitmap; 
  MaxWidth, MaxHeight: Integer; ShrinkOnly: Boolean); 
var 
  Width, Height: Integer; 
begin 
  Width := Graphic.Width; 
  Height := Graphic.Height; 
  if not ShrinkOnly or (Width > MaxWidth) or (Height > MaxHeight) then 
  begin 
    if (MaxWidth / Width) < (MaxHeight / Height) then 
    begin 
      Height := MulDiv(Height, MaxWidth, Width); 
      Width := MaxWidth; 
    end 
    else 
    begin 
      Width := MulDiv(Width, MaxHeight, Height); 
      Height := MaxHeight; 
    end; 
  end; 
  Bitmap.Width := Width; 
  Bitmap.Height := Height; 
  with Bitmap.Canvas do StretchDraw(ClipRect, Graphic); 
end;


Вызов

Код

  CopyGraphicToBitmap(From_Image1.Picture.Graphic, To_Image2.Picture.Bitmap, 
    To_Image2.Width, To_Image2.Height, True); 

PM MAIL   Вверх
Alexeis
Дата 13.10.2005, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Возможная причина порчи крайних пикселов состоит в том,
что строка битовой маски TBitmap выравнивается на слово
т.е. если число бит в строке не делится на 4 нацело то
строка дополняется нулями. Поэтому, вероятно, различные картинки
выглядят по разному. smile


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
offline
Дата 13.10.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



так что-бы использовать SmoothResize нужно расчитать еще пропорциональность картинки smile
PM MAIL   Вверх
bagos
Дата 10.11.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



у меня картинка находится в bmp, мне нужно изменить ее размер и отправить обратно в эту bmp
тут пример с jpeg, причем после работы процедуры smoothresize, в bm ничего не остается, я ее пытаюсь сохранить bm.savetofile... файл не создается
PM MAIL   Вверх
bagos
Дата 10.11.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



у меня картинка находится в bmp, мне нужно изменить ее размер и отправить обратно в эту bmp
тут пример с jpeg, причем после работы процедуры smoothresize, в bm ничего не остается, я ее пытаюсь сохранить bm.savetofile... файл не создается
PM MAIL   Вверх
Proxin
Дата 10.11.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



посмотрите тут. не прямо то, но если головой немного подумать, то сообразите:
http://www.experts-exchange.com/Programmin...Q_21869850.html
PM MAIL   Вверх
СЭНСЭЙ
Дата 31.5.2011, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Большое спасибо всем!!!!
Мне эта процедура очень помогла.
К тому же она работает очень быстро.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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