Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];
ВнизJPG -> BMP Найти похожие ветки
← →
Serg101 (2004-01-05 15:45) [0]читаю стандартными средствами Delphi картинку в формате JPG затем перевожу в BMP для сохранения в базе и в заголовке НЕТ
ДАННЫХ о DPI
че делать?
JI := TJPEGImage.Create;
try
JI.LoadFromFile(OpenDialog1.FileName);
imRastr.Picture.Bitmap.Assign(JI);
finally
JI.Free;
end;
with imRastr.Picture.Bitmap do begin
GetDIB(Handle, Palette, BitmapInfo, DIBS);
BitmapInfo.bmiHeader.biXPelsPerMeter почему-то равен 0
end;
← →
Stas (2004-01-05 15:52) [1]А почему Jpeg не хранишь ?
← →
Ega23 (2004-01-05 15:57) [2]
procedure TTPLObjectsIni.SetPhoto(BitMap: TBitMap;
PhotoSection: TPhotoSection; Value: String);
var
JPG:TJpegImage;
begin
if PhotoSection.Visible<>1 then Exit;
JPG:=TJpegImage.Create;
JPG.LoadFromFile(ExtractFilePath(ParamStr(0))+Value);
Bitmap.Canvas.StretchDraw(Rect(PhotoSection.Left,PhotoSection.Top,
PhotoSection.Left+PhotoSection.Width,
PhotoSection.Top+PhotoSection.Height),JPG);
JPG.Free;
end;
← →
Ega23 (2004-01-05 15:58) [3]Да, почему не сам JPEG хранишь? Места-то меньше..
← →
alex_*** (2004-01-05 15:59) [4]у тебя картинка-то в bmp конвертится нормально?
← →
Ega23 (2004-01-05 16:01) [5]
> imRastr.Picture.Bitmap.Assign(JI);
Вот эта сточка опасение внушает.
← →
REA (2004-01-05 16:12) [6]А в JPEG эти данные есть?
← →
alex_*** (2004-01-05 16:13) [7]с TImage я делал так:
Image1.Picture.Assign(jpg);
> imRastr.Picture.Bitmap.Assign(JI);
может и здесь лишнее звено выбросить?
← →
icWasya (2004-01-05 16:20) [8]если вместо
imRastr.Picture.Bitmap.Assign(JI);
сделать
imRastr.Picture.Assign(JI);
то в imRastr.Picture окажется не BitMap, а JPeg, что автору может быть не нужно
← →
Ega23 (2004-01-05 16:25) [9]
> imRastr.Picture.Assign(JI);
>
> то в imRastr.Picture окажется не BitMap, а JPeg, что автору
> может быть не нужно
Правильно, но у TImage Canvas в published вынесен, а дальше через CopyRect на виртуальный Bitmap изображение перенести можно.
← →
alex_*** (2004-01-05 16:26) [10]>imRastr.Picture окажется не BitMap, а JPeg
не факт. Я думаю Bitmap будет заполняться. Но проверять время нет.
← →
Serg101 (2004-01-06 10:39) [11]Самое главное что мне нужно это выиащить сведения о DPI для BMP идея описана выше а для JPG это не проходит,
Хранить JPG в базе данных не получилось говорит что можно хранить только BMP база InterBase
← →
Ega23 (2004-01-06 10:45) [12]
> Самое главное что мне нужно это выиащить сведения о DPI
> для BMP идея описана выше а для JPG это не проходит,
Так тебе структуру BMP-шки надо что-ли?
> Хранить JPG в базе данных не получилось говорит что можно
> хранить только BMP база InterBase
Хоть с InterBase делов не имел, но вжисть не поверю, что туда BLOB закачать нельзя.
← →
REA (2004-01-06 12:10) [13]>Самое главное что мне нужно это выиащить сведения о DPI для BMP
>идея описана выше а для JPG это не проходит
Чтобы что-то вытащить надо что-то установить. Если этого нет в JPG, то откуда возьмется в BMP?
← →
alex_*** (2004-01-06 12:15) [14]возьмется при конвертации JPG->BMP
← →
Serg101 (2004-01-06 15:49) [15]>Чтобы что-то вытащить надо что-то установить. Если этого нет в JPG, то откуда возьмется в BMP?
В jpg такая информация содержится но при конвертации описанным выше способом на теряется
← →
REA (2004-01-06 16:01) [16]Если она там есть, почему бы не хранить в JPG?
Нет ли возможности установить ее в BMP вручную (это ведь свойство формата, нет гарантии что разработчики Delphi озаботились копированием этого свойства)?
← →
Serg101 (2004-01-08 10:56) [17]в каком формате хранить не важно главное у нет полной инфо по файл а точне DPI.
>Если она там есть, почему бы не хранить в JPG?
>Нет ли возможности установить ее в BMP вручную (это ведь >свойство формата, нет гарантии что разработчики Delphi >озаботились копированием этого свойства)?
в этом проблема что при
imRastr.Picture.Bitmap.Assign(JI);
dpi файла JPG не переписывается в BMP тоесть если взять файл в JPG и перевести в BMP то dpi не переносится - видно это фишка такая, а мне то какраз и надо узнать dpi в JPG файле и записать его в BMP.
← →
Ega23 (2004-01-08 11:07) [18]
> Serg101 (08.01.04 10:56) [17]
Ну так возьми и побайтно считай.
Структуры JPEG и BMP в сети поищи. Могу на мыло документы выслать.
← →
Serg101 (2004-01-08 11:24) [19]>Ну так возьми и побайтно считай.
>Структуры JPEG и BMP в сети поищи. Могу на мыло документы выслать.
--------------------------------------------------------------------------------
вышли если нетрудно заранее благодарен,
всем спасибо.
← →
Ega23 (2004-01-08 12:58) [20]
> вышли если нетрудно заранее благодарен,
hitman@52.ru - на этот адрес слать?
← →
Андрей Сенченко (2004-01-08 13:01) [21]PROGRAM bmptojpg;
USES
Windows, Graphics, JPEG;
VAR
JPGpic: TJPEGImage;
BMPpic: TBitmap;
BMPName, JPGName : string;
BEGIN
If ParamCount = 2
Then
Begin
BMPName := ParamStr(1);
JPGName := ParamStr(2);
JPGpic := TJPEGImage.Create;
BMPpic := TBitmap.Create;
Try
BMPpic.LoadFromFile(BMPName);
JPGpic.Assign(BMPpic);
JPGpic.SaveToFile(JPGName);
Finally
JPGpic.Free;
BMPpic.Free;
End { Try }
End { Then }
Else
MessageBox(0,PChar("Необходимо запускать эту программу"+#13+"с параметрами :"+#13+"Имя файла.bmp Имя файла.jpg"),PChar("Внимание !"),MB_OK+MB_ICONSTOP);
END.
← →
Андрей Сенченко (2004-01-08 13:02) [22]Ну или вот еще DLL-ка у меня есть
LIBRARY convert;
uses
Windows, Graphics, JPEG;
Procedure bmp2jpg(bmpname,jpgname : PChar); stdcall;
var
JPGpic: TJPEGImage;
BMPpic: TBitmap;
begin
JPGpic := TJPEGImage.Create;
BMPpic := TBitmap.Create;
Try
BMPpic.LoadFromFile(BMPName);
JPGpic.Assign(BMPpic);
JPGpic.SaveToFile(JPGName);
Finally
JPGpic.Free;
BMPpic.Free;
End { Try }
end;
Procedure jpg2bmp(bmpname,jpgname : PChar); stdcall;
var
JPGpic: TJPEGImage;
BMPpic: TBitmap;
begin
JPGpic := TJPEGImage.Create;
BMPpic := TBitmap.Create;
Try
JPGpic.LoadFromFile(JPGName);
BMPpic.Assign(JPGpic);
BMPpic.SaveToFile(BMPName);
Finally
JPGpic.Free;
BMPpic.Free;
End { Try }
end;
Exports
bmp2jpg,
jpg2bmp;
end.
← →
Serg101 (2004-01-15 15:26) [23]Всем спасибо, заработало!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c