Главная страница
    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.047 c
1-1089203408
dosik
2004-07-07 16:30
2004.07.25
Двумерные массивы в испекторе объектов


8-1083924153
X-Disa
2004-05-07 14:02
2004.07.25
3D - фигуры


14-1088712128
Юрий Федоров
2004-07-02 00:02
2004.07.25
Вакансия для СисАдмина в Москве


1-1089601040
rolex
2004-07-12 06:57
2004.07.25
Как на ListBox е сделать фоновый рисунок?


3-1087971632
Lukin
2004-06-23 10:20
2004.07.25
Ошибка чтени/записи BLOB поля





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