我的程序没用到TJPEGImage,
MyImage:TAllImage;
MyLabel:TLabel;
SPos,i, j:integer;
NumOfDICOMFrame:integer;
FileBuf:TStringList;
ImageNum:Integer;
imgPath:string;
begin
for i := scbImageList.ComponentCount - 1 downto 0 do
scbImageList.Components[i].free;
//图象列表
// if CurrentExam.ImagePath[length(CurrentExam.ImagePath)]<>'\' then
// CurrentExam.ImagePath:=CurrentExam.ImagePath+'\'; //得到图像路径
//返回目录下所有文件名 ,数目
CurrentExam.ImagePath:='C:\pacs5.5\exe\backimg\';\\测试用
FileBuf:= tstringlist.Create();
FindFiles(CurrentExam.ImagePath,FileBuf,ImageNum);
//图象数目
j:=1;
for i := 1 to ImageNum do
begin
//为图像预留空间
MyImage := TAllImage.Create(scbImageList);
MyImage.Parent :=scbImageList;
MyImage.Hint := CurrentExam.ImagePath+FileBuf[i-1]; //图像的提示性文字是该图像的文件名
MyImage.Filename:=MyImage.Hint;
function TAllImage.GetFirstFrame:boolean;
var
// ShowFirstFrame:TGetFirstFrame;
// DllHandle:THandle;
exeStr:String;
bmp:TBitmap;
tag:boolean;
fs:TMemoryStream;
Buffer:Pointer;
MyJpeg : TFastDIB;
// pDC:HWND;
ImgSize:integer;
DcmClass:TMyDicomClass;
T1:TBitmap;
pDC: HDC;
begin
if trim(FFilename)='' then
begin
result:=false;
exit;
end;
if not(Fileexists(FFilename)) then
begin
result:=false;
exit;
end;
exeStr:=ExtractFileExt(FFilename);
if LowerCase(exeStr)='.bmp' then //自动提取BMP图象
begin
picture.loadfromfile(FFilename);
result:=true;
exit;
end;
if LowerCase(exeStr)='.jpg' then //自动提取JPG图象
begin
picture.loadfromfile(FFilename);
result:=true;
exit;
end;
if LowerCase(exeStr)='.avi' then //自动提取JPG图象
begin
bmp:=TBitmap.Create;
try
tag:=GetAviFrame(FFilename,1,bmp);
picture.Bitmap.Assign(bmp);
finally
bmp.free;
end;
result:=true;
exit;
end;