Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.011 c
1-45280
hair
2002-10-04 14:35
2002.10.14
EOutOfMemory


7-45603
Codec
2002-07-18 11:51
2002.10.14
Программное нажатие клавиш CTRL+ALT+DELETE


3-45167
Sten
2002-09-18 22:23
2002.10.14
Структура базы


7-45599
Doctor Deejay
2002-06-28 18:43
2002.10.14
Прога на другом компе не работает. В проге 3 строчки :(


3-45211
IgorK
2002-09-23 14:06
2002.10.14
Paradox -> interbase




   Наверх