问题标签 [scanline]

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 投票
4 回答
5748 浏览

delphi - 使用delphi将PNGImage转换为灰度

嗨,这是我的代码:

它不起作用并且使图片变得混乱,我确定这是因为 rgbReserved。我该怎么办?

0 投票
2 回答
4828 浏览

c++ - Visual Studio 2010 中的 graphics.h 问题

我正在使用 Visual Studio 2010 编写一个实际在 C++ 中实现扫描线算法的简单程序。但我收到一条错误消息,提示找不到 graphics.h 文件。谁能告诉我如何解决这个问题?或任何其他方式(不使用graphics.h)来实现扫描线算法。

谢谢 !!!

0 投票
1 回答
2778 浏览

c++ - scanline function in qimage class

I'm developing application for editing raster graphic. In this application I have to create scanline function which will do same thing as scanline function in QImage class. But I'm little confused with the way that scanline function works and with scanline generally. For example, when I call bytesPerLine() for image which height is 177px I was expecting that value will be 531 (3 bytes for each pixel) but this function is returning 520?

Also, when I use uchar data = image->scanLine(y)[x] for R=249 G=249 B=249 value in variable data is 255. I really don't understand this value. Thanks in advance :)

0 投票
1 回答
2513 浏览

delphi - 使用 ScanLine 交换红/蓝字节的快速方法

目前,我循环Canvas.Pixels[]属性并读取画布上的每个像素以交换红色/蓝色字节(出于特定原因)。但是,每张图片平均需要 2 秒,而且我需要转换 8,000 多张图片(一夜之间)。我知道我可以使用一种方法ScanLine来更快地完成这项工作,但我对此一无所知ScanLine- 它的编码水平比我熟悉的要低得多。最快的方法是什么?我愿意等待一段时间来完成,但如果我能把这段时间切成两半或更多,那还是很好的。

现在,这是我使用的程序:

补充说明:超过 8,000 张图像的初始转换是我需要它的第一步。但是,我也将在我们的软件中使用相同的东西来根据需要在现场自动转换任何图像。所以第三方转换器不起作用,因为我无法将其分发给我们的客户。

0 投票
1 回答
282 浏览

qt - 我想将灰度图像的行读入一个整数数组以在 Qt 中处理

我有一个灰度图像,我想逐行读取并处理(以找到中值)我通过加载文件创建了一个 QImage。然后我使用 scanline(x) 读取该行。但是我得到了一些错误的值(希望值应该是 0-256)。Scanline() 得到我认为的 RGBA 值。如何使用此方法进行灰度。或任何其他解决方案,请

谢谢

0 投票
1 回答
3111 浏览

delphi - 在其他PNG上绘制PNG图像

如何将两个PNG合并在一起?我知道你不能使用PNGObject.Draw,因为它不复制 alpha transaperncy(我不确定,但它无论如何都不起作用)所以需要自定义过程/函数。我不是空手而来,我有这个程序:

但可悲的是,它没有按应有的方式工作,它完成了工作,但不正确。当它将空图像与加载的图像合并时,它可以正常工作,但是当两个图像都不为空时,它会使它们失去透明度。

想要的结果:

在此处输入图像描述

实际结果:

在此处输入图像描述

我不确定您是否可以看到这些图像之间的差异,但是您应该在 PNG 编辑器软件中打开它们,您会看到差异。所以我需要其他程序来合并 PNG。顺便说一句,我正在使用最新版本的PNGImage

谢谢,祝你有美好的一天!

0 投票
2 回答
3110 浏览

delphi - 如何正确实现 TBitmap 的扫描线访问?

根据Embarcadero上的一篇文章,我正在尝试访问 Bitmap 的扫描线。使用扫描线如

我之前实施过。我注意到访问扫描线需要相当多的时间,上面提到的文章提供了一个解决方案。我无法正确实现它。我的代码是:

当 y=1 和 x=0 时,我总是得到非法访问。LineLength 是负数(位图的宽度),但这可能是预期的。我究竟做错了什么?

编辑:上面的代码已更改以反映到目前为止处理的备注。

0 投票
1 回答
222 浏览

bmp - BMP 扫描线中的字节顺序

我不确定它是 BGR,然后是 NULL,还是 BGRBGR->,最后是 NULL,以将宽度填充为 4 的倍数?谢谢你的时间。

0 投票
1 回答
5531 浏览

c++ - 扫描线多边形填充算法

我正在实现基于扫描线的多边形填充算法。我知道一般算法,我现在正在尝试用 C++ 实现它。

我需要将边缘表实现为活动边缘列表。

我已将活动边缘列表设为矢量,以便于动态插入和删除。

然而,边缘表有点混乱。

我正在尝试使用向量数组来实现边缘表,并且向量将包含我制作的结构。

这是结构。

我有一个 for 循环,它遍历传入的顶点数组,然后它创建一个桶并将桶插入边缘表中 ymin 索引处的边。

我的问题是我很难遍历边缘表并访问各个存储桶。

这是桶向量数组的声明:

这是我的 for 循环,它在试图打印出项目的边缘表上进行迭代。我尝试对索引使用迭代器和普通 int,但在尝试打印每个存储桶的值时都不起作用。

0 投票
1 回答
2613 浏览

javascript - 为软件渲染器实现 z 缓冲的最快方法?

我正在实现一个 javascript 软件渲染器(用于学术目的)。它处理将 3d 对象表示为三角形,并处理从 3d 空间到 2d 空间的透视投影。

到目前为止,我使用 lineToandfillRect来表示屏幕上的顶点和线条。我什lineTo至曾经做过扫描线三角形填充。(你可以在这里查看项目)

到目前为止,FPS已经相当不错了。但任务的最后一部分是实现 z-Buffering :P。据我所知,这样做的唯一方法是停止使用填充我的三角形lineTo,并用 1px 线条数组或 1px 正方形数组填充它们。(因为在我绘制每个“像素”之前,我必须检查深度缓冲区,看看我是否应该实际绘制它。)

问题是,用小矩形或线条填充三角形很慢。将所有内容降至 2FPS。所以我的问题是,有什么方法可以绘制一个像素而不是一条细线(可能更快)?

或者,我还能做些什么来加快速度?我的目标是让它旋转得足够快以演示原理。(6-10fps就足够了)

干杯。

[编辑] 在等待答案的同时,我将继续修改我的三角形填充函数以绘制 4px 大小的“像素”而不是 1px。但这会看起来参差不齐...