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

Вниз

Как изменить размер картинки?   Найти похожие ветки 

 
Ulyanov   (2002-10-03 19:41) [0]

Нужна процедура, которая откроет графический файл формата *.jpg, изменить размер картинки и сохранит его обратно!


 
Song   (2002-10-03 20:42) [1]

В смысле как изменить? Добавить или растянуть/сжать?


 
Ulyanov   (2002-10-03 20:50) [2]

Допустим есть у меня картинка размером 400 на 300 в формате *.jpg. Надо чтобы процедура открыла этот файл изменила размер картинки допустим на (300 на 200) и сохранила обратно изменённую картинку


 
Jeer   (2002-10-03 21:02) [3]

2/3 <> 4/3
Это тебе надо ?


 
Ulyanov   (2002-10-03 21:13) [4]

Мне просто нужен пример процедуры с помощью которой я могу изменить размер рисунка в формате *.jpg


 
Jeer   (2002-10-03 22:11) [5]

Да не - все понятно.
Но если ты раздвигаешь два пикселя и между ними появляются 10 виртуальных (их же не было ?) - так как их сосчитать ?
Правильно - интерполяцией.
Запусти поиск - "билинейная интерполяция", ну и..


 
Ulyanov   (2002-10-03 23:13) [6]

Да вы чё все, а?
Мне кто-нибудь на вопрос конкретно ответит или нет?
Всякую чушь пишите!


 
Jeer   (2002-10-03 23:34) [7]

Иди и поучись, если советом понять не можешь.
Ах, хотелось очередной раз ^C - ^V.
Не со мной, после таких обертонов.


 
Song   (2002-10-04 09:40) [8]

Надо переводить в TBitMap там с ней можно сделать всё что угодно. После того как поизвращаетесь, переведите в jpg обратно и сохраните.


 
REA   (2002-10-04 10:28) [9]

Задача нетривиальна и потому никто не может точно ответить. Для растровой графики нет "стандартных" алгоритмов преобразования, а есть популярные. Преобразование (тем более jpg) происходит с потерей качества.
В общем случае алгоритм такой:
загрузить картинку
создать рабочий Bitmap
провести преобразование в него
превратить в jpg
сохранить

компоненты наверняка уже где то есть для подобных операций с картинками. ищи.


 
Кулюкин Олег   (2002-10-04 15:26) [10]

Есть компонент TJpgResizer от компании Konkretno Otvet, бесплатный.


 
AL2002   (2002-10-04 18:05) [11]

>Кулюкин Олег © (04.10.02 15:26)
Платный.


 
Rouse_   (2002-10-05 03:11) [12]

procedure TForm1.Button1Click(Sender: TObject);
var b:TBitmap;
j:TJPegImage;
scale:Integer;
begin
if OpenPictureDialog1.Execute then begin
J:=TJpegImage.Create;
j.LoadFromFile(OpenPictureDialog1.FileName);
b:=TBitmap.Create;
b.Assign(j);
scale := 250 ;
b.Width := Round( scale );
b.Height:= Round( scale );
b.Canvas.StretchDraw( b.Canvas.Cliprect, j );
j.Assign( b );
j.SaveToFile(OpenPictureDialog1.FileName+".jpg");
b.Free;
j.Free;
end;
end;

Ну это грубый набросок, но принцип надеюсь понятен?

Желаю успехов


 
int64   (2002-10-05 03:26) [13]

Ulyanov
Вообще-то, формат *.jpg не для того, чтобы менять содержимое. Это конечный фрмат, для хранения.
Если ты его будешь постоянно открывать-модифицировать-сохранять, что можешь терять в качестве по сравнению с теми же операциями в битмапах.



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

Форум: "Основная";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-45333
Lony
2002-10-05 17:05
2002.10.14
Сохранение запущенного приложения.


6-45477
Delpher-Hacker
2002-08-11 05:57
2002.10.14
Мне нужно, чтобы, сервер делал снимок экрана(как клавишей Print


7-45600
Mars
2002-08-05 21:36
2002.10.14
Посылка команд на принтер


1-45452
icar
2002-10-03 20:35
2002.10.14
тип pchar


7-45606
dera
2002-08-04 17:53
2002.10.14
Как в реестре создать раздел, и в нем строковой параметр?





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