问题标签 [raster-graphics]

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 投票
3 回答
893 浏览

graphics - 抗锯齿替代品

我见过使用 GDI+、Java 以及 Photoshop 和 Gimp 提供的 Windows 上的抗锯齿功能。是否有任何其他库可以在不依赖主机操作系统支持的情况下提供抗锯齿功能?

0 投票
2 回答
81 浏览

printing - 检查矢量对象在给定 dpi 和打印尺寸的打印上是否可见

我有文件(GIS 中使用的 *.shp),其中包含多边形的集合,也许还有其他矢量对象(但多边形对我来说最重要)。我需要删除不可打印的对象。

我不知道选择了什么标准。我认为删除边界长度小的对象会比删除面积小的对象更好(所以长的对象会减少到线)。但也许有特殊的算法呢?

换句话说,我只想找到在给定缩放级别可见的对象。

0 投票
1 回答
215 浏览

graphics - Shapes-tool 每次都创建一个矢量蒙版,似乎无法在 CS3 中修复?

每次我使用形状工具创建形状时,它都会在其上放置一个矢量蒙版。我不知道我是如何启用它的,但它并没有在我的笔记本电脑版本上做到这一点,只有我的台式机。

我似乎可以禁用我遇到的这个问题。即使重新安装和恢复默认设置,我似乎也无法阻止这一点。

很郁闷,有大神解决这个问题吗?提前致谢!

0 投票
1 回答
189 浏览

printing - 将 CAD 转换为栅格

打印机如何将矢量 CAD 图形转换为纸上的点?我有一个 50mmx50mm 和 4095x4095 点“打印”系统,我想打印一些 CAD 文件?我应该使用现有的打印系统吗?或者将 CAD 文件转换为我的“打印机”可以理解的东西,如果是,如何?

谢谢

0 投票
2 回答
5010 浏览

r - 使用 R 创建光栅图像

我正在尝试使用 R 从数据矩阵创建光栅图像。但是,我的图像边缘出现了一些奇怪的伪影。

我正在使用的代码如下:

这是在 OS X 上的 R 2.12.0 中执行的,但我从 R 2.11.0 得到相同的输出。


我得到的输出如下(从 5x3 缩放到 150x90)

R输出

角落的像素应该是黑色的,这表明正在发生某种形式的插值。


我期望看到的输出是:

预期产出

关于为什么我的代码无法忠实地从矩阵生成光栅图像的任何建议?


有可能的使用

这是针对我正在开发的一个包,所以如果可能的话,我想留在 R 基础包中,以免引入额外的依赖项。该包实现了一个图形设备,所以如果有人有一个 C 级解决方案从传入的信息GERaster()src/main/engine.c提取并仅使用 R 库创建一个 PNG,我也愿意试一试。


OS X 解决方案

正如 nico 所指出的,错误行为是抗锯齿的结果。png()如果被告知使用可以禁用抗锯齿的输出方法(例如 Cairo 图形),则该图的行为与预期一致:

在 OS X 上,默认后端png()是 Quartz,但png(..., type='quartz')目前忽略quartz.options(). quartz()如果设备通过直接调用而不是使用来启动,则可以在 OS X 上本地生成忠实输出png()


Windows 有不同的想法

在 Windows 上生成以下输出:

窗口输出

根据Paul Murrell(R 图形设备的仁慈独裁者)在 R-help 邮件列表中给出的答案:

这是一个舍入(截断)问题。正在修复。

除非光栅图像包含非常少的像素,否则 Windows 上的这种行为应该不会引起注意。

0 投票
4 回答
429 浏览

java - 合并栅格

我正在尝试实现具有图层支持的绘画工具。我为每一层创建一个 WritableRaster。要显示画布,必须合并图层。最有效的方法是什么?我可以使用 bufferedImage,设置光栅并使用 alpha 合成将每一层绘制到 Graphics 上下文。但是在数据级别合并它然后绘制单个图像不是更好/更快吗?

编辑:我做了一些分析。这就是我目前的方法:

我之前对每一层都使用了 BufferedImages 而不是 WritableRasters,并且没有明显的延迟。

我的下一步是缓存顶层和底层,因此只有 3 个图像要绘制。那可能会解决问题。

0 投票
2 回答
779 浏览

r - 用点在栅格上绘制人工制品

调整绘图窗口大小时,我注意到一些奇怪的行为。考虑

如果调整窗口大小,与基础栅格相比,绘制点的范围不同。如果您调整窗口大小shrunkshrunk.coords再次绘图,则绘图结果很好。谁能解释一下?

0 投票
1 回答
175 浏览

javascript - 我可以在 Canvas 中使用 ROP 吗?(我只关心性能原因)

所以...在过去制作游戏的好日子里,当您在屏幕上绘制精灵时,您会使用 ROP 仅绘制精灵的“不透明”部分。(是的,我很久没有做过任何游戏编码了)

(如果你不知道我在说什么,看看这个。这是一个漂亮的 hack)

我现在正在尝试做一些“HTML5 游戏”,我正在尝试不同的做事方式并衡量它们的性能,我注意到 Canvas 中似乎没有 ROP。当你画一些东西时,那个“东西”有一个完整的 alpha 通道,实际上画半透明的东西和画“不透明”的东西一样快。

现在,如果你正在绘制半透明的东西,这很棒,但是对于你正在做的 99.999% 的事情,这听起来非常浪费,而且感觉如果我们确实有 ROP,我们可能会以 10 倍的速度绘制使用老面具把戏。

我在这里错过了什么吗?
Canvas 是否已经有一种方法可以“关闭 alpha”以使其绘制得更快?
我是不是完全疯了,这没关系,因为,真的,我实际上已经可以在 3 毫秒(300 FPS)内绘制 1000 个精灵,再加上显卡可能直接这样做,或者很快就会这样做,所以我在乎什么?
你怎么看?

谢谢!
丹尼尔

0 投票
1 回答
6008 浏览

vector-graphics - 光栅化矢量图像的通用算法

光栅化矢量图像的一般算法是什么?我发现了很多光栅化基元的算法,如直线、圆、贝塞尔曲线等。但一般来说,我该怎么办?简单地说,在矢量图中寻找每个矢量图,获取它的像素并将它们放入光栅图像中?或者是其他东西?

还有一个问题,如何提高并发处理的时间?例如,我可以分离矢量图并同时获取它们的像素。但也许还有其他方法可以做到这一点?

0 投票
5 回答
4470 浏览

image-processing - What algorithm is behind the Gimp's "Color to Alpha" feature?

For those who aren't familiar with the Gimp's "Color to Alpha" feature yet, here is the page on it from the Gimp's documentation: Color to Alpha. It does a really good job, and I wonder much how exactly Gimp does it in terms of color manipulation, whichever color space the colors might be in. Thanks a bunch for any hints.

EDIT 1: Generating transparency information for a pixel based on its similarity to the key color (the one you select in the "Color to Alpha" dialog), like some folk suggested before removing his answer for some reason, would sound like a good insight, but I suppose it's more intricate than that. Let's assume we estimate color similarity in the unit range from 0.0 to 1.0 and we've got a pixel whose color is, for example, 0.4 similar to, say, the color of white (like you would have selected white in the "Color to Alpha" dialog) and therefore the pixel gets an alpha value of 0.6, then how would you alter the pixel's actual color to compensate the loose of brightness/luminosity/saturation when the resulting pixel is displayed against a white background with the alpha of 0.6?

EDIT 2: Actually an update: The sub-question related to the first edit has been answered in How to change the alpha of a pixel without changing the resulting color? but it's probably not the full story because what is going on in the Gimp's source for the "Color to Alpha" feature is not that simple and seems to be based on a specific algorithm rather than a formula.