【问题标题】:TImage does not seem to support Jpeg in D7 (free edition)?TImage 在 D7(免费版)中似乎不支持 Jpeg?
【发布时间】:2010-08-21 05:33:23
【问题描述】:
procedure TmainForm.FormCreate(Sender: TObject);
  var img : TImage;
      pic:TPicture;

begin
  pic := TPicture.create();
  pic.LoadFromFile('my_picture.jpg');
  img :=  Timage.create(Self);
  img.Picture := pic;
end;

...

"Project MyProect.exe raised exception class EInvalidGraphic 
with message 'Unknown picture extension (.jpg)'" 

果然,在函数 TPicturePropertyEditor.Execute() 中,它只处理 .ICO 和 .BMP 文件!

奇怪的是,如果我在设计时将 TImage 放在表单上并单击其图片属性,那么文件加载对话框会显示 .JPG 文件(如果我加载一个文件则会崩溃) - _NOTE_ 这是多年前随电脑杂志赠送的 D7 的“免费供个人使用”版本。

怎么办?编写我自己的 VCL 组件?或者也许有人已经发明了那个 (FOSS) 轮子?

【问题讨论】:

  • 你不能使用 TJpegImage 吗?
  • 哦! (+1) 为什么不将其发布为答案?
  • 一个好主意......但是..事实证明这并不容易,因为我正在尝试制作一个组件并且 TJpegImage 不是 TCOmponentClass 的后代,但我正在努力(所以也许不要'还没有把它作为答案发布,抱歉)
  • @mawg:14 小时前问,很流行的语言,但只有 8 次浏览?你知道为什么吗?因为您没有指定“Delphi”标签。 (单独指定“Delphi-7”并不能让问题在每个人都在看的地方可见:stackoverflow.com/questions/tagged/delphi
  • +1 实际上我都考虑了 Delphi 标签并决定(可能是错误的)这是因为我使用了 Delphi 的“旧”和“免费”版本。我希望Delphi 2010支持Jpeg。我猜我猜错了。谢谢。

标签: delphi jpeg delphi-7


【解决方案1】:

新建一个项目,并写(举例)

procedure TForm1.FormCreate(Sender: TObject);
var
  img: TPicture;
begin
  img := TPicture.Create;
  img.LoadFromFile('C:\Users\Andreas Rejbrand\...\tiles55.jpg');
end;

这将生成“未知图片文件扩展名 (.jpg)”错误。但是,如果您在uses 子句中添加“Jpeg”,那么它将起作用。

【讨论】:

  • 天啊!我猜是坏 Borland。如果没有 use 子句,我什至可以预览我的 JPG,但是当我加载它时它会崩溃。我以为我将不得不采用他们的代码并对其进行扩展(即时将 Jpeg 转换为 BMP)谢谢您的回答!
  • 不,Borland 还不错(换个方式)。 IDE 编译时支持 JPEG(使用 JPEG),因此 JPEG 内容可以在 IDE 中使用。您需要执行相同的操作,以便 JPEG 在您的应用中也可以使用 JPEG。
猜你喜欢
  • 2018-03-20
  • 1970-01-01
  • 2018-03-10
  • 2012-06-02
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多