Главная страница
    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.46 MB
Время: 0.031 c
1-1089705275
NJoe
2004-07-13 11:54
2004.07.25
TabStop


14-1089215993
rOOse
2004-07-07 19:59
2004.07.25
Компонент TEdit


4-1086984795
alienserg
2004-06-12 00:13
2004.07.25
Synchronize внутри DLL. Пытаюсь рисовать из треда на форме.


14-1088935024
Dimman
2004-07-04 13:57
2004.07.25
Бесплатный почтовый сервер


1-1089634292
Snip
2004-07-12 16:11
2004.07.25
Delphi 8 and .NET





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский