gpt4 book ai didi

c# - 使用字节访问位图内存信息

转载 作者:行者123 更新时间:2023-11-30 11:56:53 26 4
gpt4 key购买 nike

(上周我在 SO 上发表了三篇关于我正在从事的 Java 项目的帖子。我感到内疚,但管他呢,你的回答太棒了。)

这是一段 C# 代码:

Bitmap bitmap = ...

int dstStride = bitmap.Stride;

byte* bdst = (byte*)bitmap.Scan0;

我想用 Java 做一个等价的算法。基于other, similar questions,我开始认为这是不可能的.

我实际上可以复制位图的步长信息,但是当然,byte* 几乎不可能复制。稍后发生的是,有一个操作位图图像的 for 循环,a la:

bdst[x * 3 + y * dstStride + 2] = (byte)(alpha * bsrc[dx * 3 + L * srcStride + 2]);

(x & y 是循环中的迭代器)

当然,我无法简单地将 bdst 设为字节数组,因为那没有意义。 According to this totally awesome article , Scan0 是“固定数据数组在内存中的地址。”

从上面的 SO 帖子来看,这在 Java 中是不可能的。确认/拒绝?

最佳答案

在 Java 中,您无法获得指向内存的直接指针。这显然是设计使然。

但是您可以使用 PixelGrabber 从图像中获取像素数组类(class)。或者,如果您有 BufferedImage ,您可以使用 Raster直接地。这可以帮助您在不直接访问内存的情况下实现您的目标。

关于c# - 使用字节访问位图内存信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com