Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
1-1089370285
leonidus
2004-07-09 14:51
2004.07.25
Как создать ярлык в Пуск>Меню>Моя программа?


1-1089762117
Алексей
2004-07-14 03:41
2004.07.25
Необходимо вычислять довольно сложные математические выражения.


14-1089108766
cherrex
2004-07-06 14:12
2004.07.25
Запуск програм при старте Windows


1-1089530502
Islander
2004-07-11 11:21
2004.07.25
Как получить текущую модальную форму?


3-1088681917
Sir John
2004-07-01 15:38
2004.07.25
Передача структуры таблицы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский