急,急,急,图象转换急死人!!!!!!!!!!(100分)

  • 主题发起人 主题发起人 boby_v
  • 开始时间 开始时间
B

boby_v

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题对熟悉DELPHI图象处理的高手也许不困难,但我真是束手无策…………高分等着您!
情况是这样的:我写了一个DLL供PB来调用,功能是把JPG转成BMP存放。
遇到的问题是:在WIN98颜色是16BIT(32BIT)是转换出来是15位(32BIT)的BMP图象,显示
没有问题,但打印出来是黑团,PHOTOSHOP也调不出来,只有在画图和ACDSEE中才能处理。我
如何才能控制JPG转换成的BMP是标准的BITMAP。
函数代码如下:
Function JpgToBmp(pathname:Pchar;filename :Pchar;objectivepath :Pchar):Boolean;Stdcall;
var
Fjpg:TPicture;
FBitMap :TBitMap;
FClipbd :TClipboard;
begin
Fjpg := TPicture.Create;
FBitMap:=TBitMap.Create;
FClipbd :=TClipboard.Create;
if FileExists(pathname+'/'+filename+'.Jpg') then
try
Fjpg.LoadFromFile(pathname+'/'+filename+'.Jpg');
FClipbd.Assign(Fjpg);
FBitMap.Assign(ClipBoard);
FBitMap.SaveToFile(objectivepath+'/'+filename+'.BMP');
Result :=true;
Except
MessageBox(GetActiveWindow,'图象转换失败','警告',MB_OK);
Fjpg.Free;
FBitMap.Free;
FClipbd.Free;
Result:=false;
Exit;
end
else begin
Result:=false
end ;
FJpg.Free;
FBitMap.Free;
FClipbd.Free;
end;
 
利用下述方法仍然如此:
Fjpg.LoadFromFile(pathname+'/'+filename+'.Jpg');
FBitMap.Width :=Fjpg.Width;
FBitMap.Height :=Fjpg.Height;
FBitMap.Canvas.Draw(0,0,Fjpg);
FBitMap.SaveToFile(objectivepath+'/'+filename+'.BMP');
 
看过delphi5/help/examples/jpeg下的例子了吗
 
To amo :
哥们,谢谢指点。写了一句话就搞定了!
 
后退
顶部