问题标签 [drawimage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
24362 浏览

gdi+ - gdi+ Graphics::DrawImage 真的很慢~~

我正在使用 GDI+ Graphic 将 4000*3000 的图像绘制到屏幕上,但它真的很慢。大约需要 300 毫秒。我希望它只占用不到 10 毫秒。

// - - - - - - - - - - - - - - - - - - - - - - // 这部分大约需要300ms,太可怕了!

//------------------------------------------------------

我不能使用 CachedBitmap,因为我想稍后编辑位图。

我该如何改进它?还是有什么不对?

这个原生 GDI 函数也将图像绘制到屏幕上,它只需要 1 毫秒:

//------------------------------------------------ --------------

如果我想使用 StretchDIBits,我需要传递 BITMAPINFO,但是如何从 Gdi+ 位图对象中获取 BITMAPINFO?我通过 FreeImage lib 进行了实验,我使用 FreeImageplus 对象调用 StretchDIBits,它绘制得非常快。但是现在我需要绘制Bitmap,并在Bitmap的位数组上写一些算法,如果我有一个Bitmap对象,我怎么能得到BITMAPINFO呢?真的很烦-_______________-|

0 投票
2 回答
6693 浏览

java - 如何在 Java 中将图像叠加在一起?

所以我一直在发帖,但还没有得到一个可靠的答案:

我创建了一个带有裁剪方法的图像大小调整类。种植效果很好。我遇到的问题是我在drawImage函数中指定的背景颜色Graphics无法正常工作。无论我提供什么(在这种情况下Color.WHITE),它默认为黑色作为背景。

此外,覆盖图像或最上面的图像(来自文件)正在反转(我认为是)或以其他方式变色。只是为了让您可以更好地概念化这一点,我正在拍摄一个 jpeg 并将其覆盖在一个新BufferedImage的顶部,新的缓冲图像的背景没有被设置。这是我正在使用的以下代码:

0 投票
2 回答
1982 浏览

gdi+ - 在另一个图像上绘制图像的最快方法是什么?

我有 3 个位图点。

我将在底部图层上绘制复杂的背景。我不想一次又一次地在totalCanvas上重绘复杂的背景,所以我把它存储在bottomLayer中。

TopLayer 经常更改。我想将bottomLayer 绘制到totalCanvas。哪种方式最快?

我希望 step1 尽可能快。谁能给我一些样品?非常感谢!

感谢您放松的回答。我写了以下代码:

这部分需要 968 毫秒……太慢了……

0 投票
2 回答
4863 浏览

c# - C#:尽管使用 Graphics.DrawImage 的分辨率不同,但仍保持大小

我正在尝试使用 C# 绘图命名空间并排绘制两个图像。这是一个非常简单的示例,假设我们有两个相同高度的图像:

如果两个旧图像的分辨率相同,这可以正常工作。

但是,如果分辨率不同,则会调整图像大小,从而导致问题。例如,如果第一张图像具有不同的分辨率,则第二张图像的位置将不正确。

有谁知道我可以如何轻松解决这个问题?理想情况下,我希望原始图像的高度和宽度在绘制到新图像时保持不变。

0 投票
1 回答
931 浏览

.net - Drawing.Graphics - 更改源位图像素偏移的方法?

在寻找功能或方法来做我正在寻找的事情时遇到一个小问题,希望有人可以在这里提供一些见解。

我有一个函数应该从一个较大的位图中提取并返回一个 32x32px 的位图,该位图中有一组 32x32 的图块。

这是我现在拥有的代码,但这是错误的,因为Tile.GFX_Pos属性告诉它要在目标图像中的哪个位置绘制,而不是在源图像中的哪个位置绘制。

因此,由于这不起作用,我想知道是否有人知道一个好方法来选择SrcGFX位图中的位置,而不是(当前和错误地)选择目标位图中的位置。

0 投票
2 回答
4746 浏览

gdi+ - GDI+,使用 DrawImage 绘制源图像的透明蒙版

是否可以使用 绘制图像的透明蒙版(即,用恒定颜色绘制所有可见像素)Graphics::DrawImage?我不是在寻找手动逐像素扫描图像并创建单独的蒙版图像,我想知道是否可以直接从原始图像中绘制一个。

我的猜测是,如果可能的话,应该对 进行某些操作ImageAttributes

蒙版的颜色是任意的,应该是准确的,如果可以有透明度的阈值,那将是一个加号。

0 投票
4 回答
39537 浏览

java - Java Graphics.drawImage() 是如何工作的,ImageObserver 的作用是什么

Java的drawImage()应该如何使用?我没有发现 JDK 文档非常即将发布。例如,所有的 drawImage 签名都需要一个 ImageObserver,但是这方面的文档对新用户不是很有帮助。

0 投票
1 回答
4080 浏览

c# - 如何提高 GDI 的 DrawImage(未缩放)的性能?

在我的用户控件的绘制处理程序中,我迭代了一组预定义的 Bitmap 对象并将它们绘制到客户区:

C#版本:

VB.NET 版本:

代码运行良好,但在将十几个对象添加到集合时开始陷入困境。我的问题是:有没有办法加快速度?是否可以使用 Win32 bitblt 函数来替换 DrawImageUnscaled?如果是这样怎么办?

谢谢!

注意:到目前为止,谷歌搜索 BitBlt 的使用只产生了我的屏幕截图样本......

0 投票
1 回答
648 浏览

c# - XP 模式或远程桌面中的 DrawImage

我正在显示一个在 Windows 7 中看起来不错的透明背景的 PNG,但随后我以 XP 模式或远程桌面运行我的应用程序到 Windows XP 机器,PNG 看起来不正确。我注意到如果我禁用“集成模式”或在没有远程桌面的 XP 上运行应用程序,图像看起来很好。

如何让 DrawImage 在 XP 模式或远程桌面下正确渲染 PNG?

Windows 7 中的图像

替代文字 http://www.freeimagehosting.net/uploads/957bb6ea8b.png

XP Mode 或远程桌面内的图像

替代文字 http://www.freeimagehosting.net/uploads/08f1fbec46.png

这是我的代码:

0 投票
5 回答
26223 浏览

html - 如何避免 HTML Canvas 自动拉伸

我有以下一段 HTML:

问题是绘制的图像会与画布的大小成比例地自动拉伸(调整大小)。我尝试使用所有可用的参数 ( drawImage(i, 0, 0, 20, 20, 0, 0, 20, 20)),但没有帮助。

是什么导致我的绘图拉伸,我该如何防止这种情况?

谢谢,
汤姆