Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.26;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.014 c
14-83269
LM
2004-01-05 10:36
2004.01.26
Помогите разобраться с UpperCase


3-83116
uu
2003-12-28 12:43
2004.01.26
trigger


14-83279
DDA
2004-01-03 23:48
2004.01.26
HKEY_DYN_DATA


7-83291
Gang
2003-10-09 17:52
2004.01.26
CTRL+ALT+DEL


9-83085
loto
2003-05-29 18:33
2004.01.26
(OpenGL) модули математических действий с матрицами