【问题标题】:Invalid Picture In Visual basic 6Visual basic 6中的无效图片
【发布时间】:2020-08-15 03:19:31
【问题描述】:

我正在 vb 6 中开发一个项目。问题是当我加载图标(扩展名 .ico)时它给出“无效图片”。我在所有论坛上搜索了它,但仍然躺在那里。任何帮助将不胜感激。

Image1.picture = loadpicture(app.path & "\Abc.ico") 

但是当将文件从ico格式转换为jpg时:

image1.picture = loadpicture(app.path & "\Abc.jpg")

已加载到 Image1。

我也将图标文件从 32 位转换为 24 位,但仍然无法正常工作。

【问题讨论】:

  • edit您的问题提供详细信息。在评论中发布它意味着人们在阅读您的问题时看不到它。谢谢。 Abc.ico 是有效的 Windows 图标吗?不是 PNG,而是旧式 Windows 图标 - VB6 ,不支持 alpha 混合或高色图标;它需要像 Windows 95 天那样的旧格式、沉闷的图标。
  • 您实际上说过(在之前的评论中)“当我更改图片时 name”;你没有说“当我使用不同的图片文件时”。您的图标文件无效。正如我所说,VB6 ,并且期望 .ico 文件是旧的 Win95 格式,而不是较新的 alpha 混合 Vista/Win7 图标。
  • @KenWhite - 我喜欢你在现实世界中的例子!
  • 再一次,您的图标文件无效。 VB6 需要老式的 32x32、256 色 Win95 类型的图标,而您尝试加载的图标显然不是一个。由于我们没有要检查的图标文件的副本,因此几乎不可能解释其他任何内容。

标签: vb6


【解决方案1】:

您的图标可能是 32 位图标 - 只需将其更改为 24 位,以便在 VB6 中得到支持。您可以使用 IcoFX 之类的程序来更改位深度。

【讨论】:

  • 此错误发生在 Windows 8.1 上运行 VB6 时,其图标文件有两种格式,32x32 4 位和 16x16 4 位。在 24 位添加 32x32 解决了该问题,因此 Windows 8.1 必须有一个最小位深度(大于 Windows 7 的要求)。
  • 是的,@VictorMcManus 的答案是正确的,VB6 也不支持 256x256 的大小。
【解决方案2】:

您必须使用实际将其保存为 .ICO 的生成器来创建您的图标文件。您不能尝试获取 jpg 或 png 并将其重新保存为 .ico 文件。

【讨论】:

  • 试试这个链接:google.com/…
  • 亲爱的,我没有把jpg、bmp、png或其他文件改成ico。
  • 我刚刚从网上下载了 .ico 文件,想把它放在我的设计界面中。但它给出了错误。
  • 对于 VB6,它们需要非常简化的 ico
  • 所以我不知道从哪里可以得到简化的 ico。在我们的 Softhouse 中有人告诉我,这可能是使用 32 位 ico 引起的,请将其更改为 24 位。我这样做了,但到目前为止我躺在那里。
【解决方案3】:

在 VB6 中,图标 (*.ICO) 只能用于在适用的情况下设置为图标。您可以将 *.ico 文件用于应用程序的主窗口。

但是 image1.picture 无法通过 loadpicture 方法加载图标。

【讨论】:

  • 图标如何加载为图片?有没有办法?
【解决方案4】:

我建议您使用 FreeImage (http://freeimage.sourceforge.net/) 加载几乎任何格式的图片的最佳方式。

您需要将 FreeImage.dll 复制到 Windows\System32 文件夹,然后将它们的 bas 模块包含到您的 VB6 项目中。完成此操作后,您可以简单地将图标加载到图像中:

Image1.Picture = LoadPictureEx(App.Path & "\Abc.ico")

【讨论】:

    【解决方案5】:

    当我在 C: 驱动器有零字节空闲时收到此错误。清理一些空间后,错误消失了。

    【讨论】:

    • 正确。这是运行时“无效图片”错误的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多