Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

JPEG и масштаб   Найти похожие ветки 

 
limon_   (2004-07-08 22:10) [0]

Уважаемые Мастера!
Как сделать масштабирование
jpeg картинки на масштаб (например 80%), то есть, любой процент.
Картинки имеют разную ширину и высоту.
При стандартных примерах, масштаб идет 1:2,1:4 и т.д
Зараннее спасибо!


 
KilkennyCat ©   (2004-07-08 22:28) [1]

Ну, если оперировать непосредственно с jpeg - не знаю.
Если загрузить его в битмап, то стандартная работа с битмапами, типа StretchDraw и прочие...


 
Palladin ©   (2004-07-08 22:35) [2]


>  limon_   (08.07.04 22:10)

Алгоритъм прихода к решению задачи таков:
1 Ставим Adobe Photoshop. Лучше 7
2 Открываем картинку.
3 Выбираем пункт меню Image\Image Size...
4 В появившемся диалоговом окне открываем список Resample Image
5 Записываем на листочек или запоминаем фразы которые там написаны
6 Используем поисковую систему, практически любую, рекомендую Google, с фразой "алгоритм "+<написаный на листочке или запомненый один из пунктов>
7 Наслаждаемся описанием найденного
8 Повторяем пункт 6 пока не кончатся пункты
9 Выбираем понравившийся рассказ и реализуем.

PS: Пункты можно смотреть и Corel Draw 7 or higher, только как - не помню...


 
KilkennyCat ©   (2004-07-08 22:43) [3]


> Palladin ©   (08.07.04 22:35) [2]


О! Вопрос, извиняюсь, не в тему: давно не работал ни в кореле, ни в фотошопе... они еще не начали давать возможность работать с ними из Делфи, как с МС Оффиссом? Тогда все проще...


 
Palladin ©   (2004-07-08 22:51) [4]

Без проблем...


 
Sir John ©   (2004-07-08 23:45) [5]


procedure TForm_rc_Main.LoadPreview;
var
 bmp: TBItmap;
 jpg: TJpegImage;
 scale: Double;
begin
    jpg := TJpegImage.Create;
   try
     jpg.Loadfromfile("имя_файла");
     if jpg.Height > jpg.Width then
       scale := image_small_Y / jpg.Height
     else
       scale := image_small_X / jpg.Width;
     bmp:= Tbitmap.Create;
     try
       {Create thumbnail bitmap, keep pictures aspect ratio}
       bmp.Width := Round( jpg.Width * scale );
       bmp.Height:= Round( jpg.Height * scale );
       bmp.Canvas.StretchDraw( bmp.Canvas.Cliprect, jpg );

       {Convert back to JPEG and save to file}
       jpg.Assign(bmp);
//показываем где-нить
      finally
       bmp.free;
     end;
   finally
    jpg.free;
   end;
end;


image_small_Y  - требуемая высота
image_small_X - требуемая ширина
----------------------
с уважением,
Sir John


 
Palladin ©   (2004-07-08 23:48) [6]

Уау... какая дрянь может получится из красивой картинки...


 
Sir John ©   (2004-07-08 23:50) [7]

не нравится - не пользуйтесь. У меня все нормально работает


 
Palladin ©   (2004-07-08 23:52) [8]

Дело не в том нормально не нормально работает, как вы могли заметить.. про работает или нет я ничего не говорил...


 
Sir John ©   (2004-07-09 00:01) [9]

не проблема, приведите свой код :)


 
Palladin ©   (2004-07-09 00:09) [10]

Была бы задача для меня - привел бы... но, извините, тратить время на не нужное... подход к поиску решения описан...



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
1-1089382420
Norfolk
2004-07-09 18:13
2004.07.25
TRadioGroup и файл


14-1088926731
Dan
2004-07-04 11:38
2004.07.25
Как заставить Delphi инсталлиться только для одного юзера


8-1083361027
Jaja
2004-05-01 01:37
2004.07.25
Звук


1-1089645134
ADMIN
2004-07-12 19:12
2004.07.25
system error. code 1447.


6-1085730896
panov
2004-05-28 11:54
2004.07.25
Indy v.8 Получение Header ответа сервера.