Форум: "Media";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Вниз
Опять JPEG Найти похожие ветки
← →
SPeller (2002-04-14 06:59) [0]Подскажите пожалуйста, как в объект JPG:TJPEGImage загрузить JPEG рисунок из Image ??
← →
SPeller (2002-04-14 08:52) [1]Извините, совсем не так вопрос поставил.... :)
Мне надо, чтобы в Image в котором JPEG рисунок, оказался тот же рисунок но в BMP формате.
Делаю так :
var b:tbitmap;j:tjpegimage;
begin
b:=tbitmap.create;
j:=tjpegimage.Create;
j.Assign(img.Picture);
B.Assign(j);img.Picture:=nil;
img.Picture.Bitmap:=b;
b.Free;
j.Free;
Работает, но мне очень не нравится выделенный кусок. Преобразования вроде
b.Assign(img.Picture);
или
b.Assign(tjpegimage(img.Picture));
не проходят.
Можно ли как-нибудь обойтись без лишних объектов в этом процессе, или вообще провести всё это внутрях Image ??
← →
Вася Пупкин (2002-04-14 10:08) [2]procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
JPEG: TJPEGIMAGE;
begin
OpenDialog1.DefaultExt := ".jpg";
OpenDialog1.Filter := " (*.jpg)|*.JPG";
OpenDialog1.Options := [ofOverwritePrompt, ofFileMustExist, ofHideReadOnly ];
if OpenDialog1.Execute then
begin
JPEG := TJPEGIMAGE.Create;
try
JPEG.Loadfromfile(OpenDialog1.FileName);
s:= ChangeFileExt(OpenDialog1.FileName,".BMP");
Image1.Width := JPEG.Width;
Image1.Height := JPEG.Height;
Image1.Canvas.Draw(0,0,JPEG); Image1.Picture.SaveToFile(s);
ShowMessage(OpenDialog1.FileName + " Saved to " + s);
finally
JPEG.Free;
end;
end;
end;
← →
SPeller (2002-04-15 05:05) [3]Оно да, но рисунок загружен в имаг в Ран-тайме и никаких сохранений/чтений файлов мне не надо. Вот имаг с рисунком, как его преобразовать ??
← →
Вася Пупкин (2002-04-16 02:56) [4]хм... может я чего не понимаю, но что, по твоему, будет в Image1.Picture.Bitmap ?
А чтение файла - ну, надо же мне было его откуда-нить загрузить, ентот JPEG, я же не знаю, откуда ты его грузишь и как :)
Ну, еще можно так (извини, для полноты примера опять с файлами, конкретно твоё выделю жирным).Совсем "обойтись без лишних объектов в этом процессе" не выйдет :
var
s : string;
JPEG: TJPEGIMAGE;
begin
OpenDialog1.DefaultExt := ".jpg";
OpenDialog1.Filter := " (*.jpg)|*.JPG";
OpenDialog1.Options := [ofOverwritePrompt, ofFileMustExist, ofHideReadOnly ];
if OpenDialog1.Execute then
begin
JPEG := TJPEGIMAGE.Create;
try
Image1.Picture.Loadfromfile(OpenDialog1.FileName);
s:= ChangeFileExt(OpenDialog1.FileName,".BMP");
//Это твоё:
JPEG.Assign(Image1.Picture.Graphic);
Image1.Picture.Bitmap.Assign(jpeg);
//
Image1.Picture.Bitmap.saveToFile(s);
ShowMessage(OpenDialog1.FileName + " Saved to " + s);
finally
JPEG.Free;
end;
end;
end;
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c