【问题标题】:Black background while copying image from Firefox从 Firefox 复制图像时出现黑色背景
【发布时间】:2009-05-24 01:01:55
【问题描述】:

图像从 Firefox 复制到剪贴板。我的程序从剪贴板中获取它并保存为 JPEG 图像。由于某种原因,图像以黑色背景保存。如果我在 IE 中打开相同的 URL 并将图像复制到剪贴板,则图像会被我的程序正确保存。我正在使用 Delphi 7。

我还尝试将图像从 Firefox 复制到 Microsoft Paint 并再次复制黑色背景。有没有人有关于如何处理此类问题的提示。

【问题讨论】:

  • 所以现在的问题是:如何检测 DIB 中的透明度? Firefox 只是在剪贴板中放置了一个 DIB。原始图像是PNG。我想知道如何在 DIB 中检测它是否具有透明度。
  • 如果您想完善您的问题,请编辑它。你没有足够的重复次数来编辑其他人的问题或答案,但你总是有足够的时间来编辑自己的。
  • 这是 Firefox 将内容复制到剪贴板的限制。

标签: delphi firefox jpeg clipboard


【解决方案1】:

我假设原始图像是透明的?如果是这样,您应该知道 JPEG 无法处理透明度。尝试切换输出图像类型,看看你的程序是否神奇地消失了。

【讨论】:

  • 不起作用。我尝试保存为 PNG 和 GIF 无济于事。问题出在 DIB 加载到 TPicture 中时。不知何故,我必须确定图像是否具有透明度并处理它。这是我的问题。
  • TBH,我不明白你为什么要将东西复制到剪贴板等 - 你不能只从 url 获取图像,从而切断 Firefox 中间人,这可能是造成问题?
  • 我的程序充当剪贴板捕手。他没有看到 Firefox,而是看到剪贴板中的内容。问题是如何处理从 Firefox 复制的图像。
【解决方案2】:

如果你在你的程序和 Paint 中获得相同的背景,那么这告诉我这是与 Firefox 有关的,因此它不一定是你要解决的问题。

由于您关心背景颜色,我猜您正在复制的图像具有透明元素。那么告诉我:应该有什么颜色? JPEG 图像不能有透明部分,因此每个像素都必须有 一些 颜色。 Firefox 显然选择将黑色放在那里;为什么这不是一个正确的选择,而 Internet Explorer 是?

我想知道当您粘贴到比 Paint 功能更强大的图形程序(例如 Gimp 或 Photoshop)中时,您会得到什么颜色的背景。我希望这些程序考虑多个clipboard formats 并选择最合适的格式,因此他们可能会选择一种在可用时适应透明度的格式。另一方面,您的程序和 Paint 可能只使用 cf_Bitmap 格式,当然不能有透明像素,因此它们会得到复制程序选择用来填充空白空间的任何内容。

顺便说一句,Firefox 和 Internet Explorer 都允许您将图像直接从浏览器拖到桌面或其他文件夹窗口以保存原始图像。也许这会让你的程序变得不必要?

【讨论】:

  • Rob,我的程序在将某些内容复制到其中时会捕获剪贴板内容。 Firefox 只是以两种格式放置图像,DIB 和我现在不记得的另一种格式。我正在处理 DIB。
  • Rob,我不知道这里是否适合回答您的问题。我是 StackOverflow 的新手。 Firefox 放入剪贴板的另一种格式似乎是原生格式:application/x-moz-nativeimage。我必须坚持使用 CF_DIB。
【解决方案3】:

我知道这是一个有点老的问题,但我刚刚在 Firefox v9 中遇到了同样的问题。

使用以下解决方法:将有问题的图像保存到您的计算机,然后将文件复制到资源管理器中并粘贴到您要使用的程序中(在我的情况下,我粘贴到 word 中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多