function GetJPEGSize(FileName: string; var Width, Height: WORD): Boolean;
const
JPEG_FLAG_BEGIN = $D8FF;
JPEG_FLAG_END = $D9FF;
JPEG_FRAME = $C0FF;
var
FS: TFileStream;
Flag1, Flag2: WORD;
B: Byte;
procedure SeekForFrame;
type
TSegHeader = packed record
Flag: WORD;
LenHi, LenL Byte;
end;
var
Seg: TSegHeader;
begin
with Seg, FS do
repeat
Read(Seg, SizeOf(Seg));
if Flag <> JPEG_FRAME then
Position := Position + MakeWord(LenLo, LenHi) - 2;
until (Position >= FsSize) or (SegFlag = JPEG_FRAME);
end;
begin
FS := TFileStreamCreate(FileName, fmOpenRead);
try
{ JPEG 文件开头必须为 FF D8,文件尾必须为 FF D9 }
FSRead(Flag1, SizeOf(Flag1));
FSPosition := FSSize - 2;
FSRead(Flag2, SizeOf(Flag2));
result := (Flag1 = JPEG_FLAG_BEGIN) and (Flag2 = JPEG_FLAG_END);
if not result then exit; { 不是合法的JPEG文件则退出 }
FSPosition := 2;
SeekForFrame; { 寻找JPEG的Frame段,即图像数据区 }
FSRead(B, SizeOf(B)); { Frame段段头后第一个Byte为数据精度 }
FSRead(B, SizeOf(B)); { 高度高字节 }
WordRec(Height)Hi := B;
FSRead(B, SizeOf(B)); { 高度低字节 }
WordRec(Height)Lo := B;
FSRead(B, SizeOf(B)); { 宽度高字节 }
WordRec(Width)Hi := B;
FSRead(B, SizeOf(B)); { 宽度低字节 }
WordRec(Width)Lo := B;
finally
FSFree;
end;
end;
procedure TForm1Button1Click(Sender: TObject);
var
W, H: Word;
begin
with OpenDialog1 do
if Execute then
if GetJPEGSize(FileName, W, H) then
Caption := Format('Yes,W:%d,H:%d', [W, H])
else Caption := 'No';
end;
Picture1Scalemode=3,picture1autosize=ture,然后把载入Picture1中,像素=Picture1ScaleHeightPicture1ScaleWidth,水平分辨率=Picture1ScaleWidth,垂直分辨率=Picture1ScaleHeight,高度和宽度那就是像素
用FileStream打开文件查看大小再创建Bitmap显示尺寸。
Dim f As New IOFileStream("C:\1bmp", IOFileModeOpen, IOFileAccessRead) '改成你的文件地址。MsgBox(fLength / 1024 & "KB") '没做仔细,你根据需要自己改吧,Length得到的是字节数。
Dim b As New Bitmap(f)
fDispose()
MsgBox(bWidth & " " & bHeight)
FileStream 类:>
Bitmap 类:>
将当作普通文件处理
File file = new File("/sdcard/demojpg");
FileInputStream fis = new FileInputStream(file);
int fileLen = fisavailable();
以上就是关于delphi怎么读取jpg等图片文件的属性全部的内容,包括:delphi怎么读取jpg等图片文件的属性、怎样用VB获取图片文件属性中的摘要内容,如像素、分辨率(高度、宽度、水平分辨率、垂直分辨率)、VB.NET获取Image图片对象属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)