问题标签 [16-bit]

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 投票
6 回答
96752 浏览

assembly - What does OFFSET in 16 bit assembly code mean?

I am going through some example assembly code for 16-bit real mode.

I've come across the lines:

what is this doing? What does having 'OFFSET' there do?

0 投票
2 回答
1031 浏览

sql-server - 在 64 位机器上使用 Quest Geo Solutions GIQ60 库

我们在 SQL Server 集成服务 (SSIS) 包中使用 Quest Geo Solution 的 Grid InQuest DLL (GIQ60.DLL)。通过使用 tlbimp 创建一个 .NET 包装器(互操作),我们已经成功地在本地(32 位)使用它而没有问题。但是,当它移动到我们的集成服务器时,这不起作用,因为服务器是 64 位的。

GIQ60.DLL 是 16 位 DLL,供应商已确认不再积极支持此功能。如果我们在服务器上运行 32 位版本的 DTEXEC,包运行没有问题。是否有一种技巧/方法可以转换 .NET 包装器以使其能够工作 SQL Server 集成服务(64 位安装)。

或者,我们需要一个替换的免费 32 位 .net 库,它将 OS 网格(东/北)转换为英国和爱尔兰的地理空间经度/纬度(它们使用不同的网格系统),那么这将是一个可行的解决方案。

0 投票
3 回答
1473 浏览

c# - 如何检查两个 System.Drawing.Color 结构是否在 16 位色深中表示相同的颜色?

如何检查两个 System.Drawing.Color 结构是否以 16 位颜色深度表示相同的颜色(或通常基于 Screen.PrimaryScreen.BitsPerPixel 的值)?

假设我将 Form.TransparencyKey 设置为 Value1(颜色类型),我想检查当用户为表单(Value2)选择新的背景颜色时,我没有将整个表单设置为透明。

在 32 位色深屏幕上,我只是比较这两个值:

如果(值 1 == 值 2)

但是,这在 16 位颜色深度屏幕上不起作用,因为 Value2 的更多颜色值将代表与 Value1 相同的实际 16 位颜色,因为我发现很难。

0 投票
2 回答
2102 浏览

.net - 如何在 .net x64 中保存/加载 16 位图像?

之前,当我使用 win32 时,我使用FreeImage来加载和保存位深大于 8 位的位图。这是我使用的每张图像,因为我正在做医学成像,在任何人说什么之前,是的,我和我的客户已经花了很多钱购买具有 11 或 12 位动态范围的高亮度、高对比度显示器. 事实上,如果您好奇的话,ACR 对运行乳房 X 光检查的要求包括至少具有 10 位动态范围的监视器。

我刚刚切换到 x64 来解决内存开销,并将我的所有开发都放到一个平台和编译模式上。我宁愿不回到 win32,而且我的客户就在我身边(并且真的迫使改变)。FreeImage 不能在 64 位窗口上编译;它在代码中有一个编译器无法处理的 _asm 指令。

我想我会在 Microsoft 类中尝试原生 .NET 支持。长话短说:它们不起作用,并且失败并显示非常有限的错误消息。我怀疑这是因为微软仍然不支持 Format16bppGrayScale 类。

也许我的代码有问题。这是我的写作代码:

此代码使程序崩溃

很有趣,特别是因为我从不想像这样将这个图像绘制到屏幕上(虽然它会很好!),但只想使用保存/加载功能。图像确实被写入磁盘(即使程序崩溃),以下读取代码也会使程序崩溃:

此代码使程序崩溃并出现错误:

这些结果告诉我,微软还没有修复 PixelFormat 枚举的 Format16bppGrayScale 部分。真可惜。

那么,我可以使用什么来使用 .NET 在 x64 上加载和保存 16 位灰度图像?

(编辑:我应该补充一点,虽然我可以保存 DICOM 图像,但我需要对非患者数据进行实验以验证算法是否合理,等等。DICOM 需要一组 UID 和其他必填字段,这些字段是多余的满足我的需要;我现在只需要图像,而不是患者数据)。

0 投票
2 回答
3409 浏览

php - 在 php 中使用 16 位颜色深度 png 支持动态创建 pdf

我正在尝试在应用程序中动态创建 pdf 文档,即用户单击链接,然后向他们显示 pdf 文档,其中包含一些文本和一些图像。

我目前正在使用支持 24 位(真彩色)png 的 FPDF v1.6(http://www.fpdf.org/),但我遇到的问题是这是一个遗留应用程序,并且有 1000 个 16 位的 png FPDF 不支持的颜色深度,由于应用程序的其他部分使用这些图像,我不能简单地转换。

我看到的唯一解决方案是:

  1. 即时转换 16 位 png 图像并将其嵌入到 pdf 中。
  2. 找到一个可以接受 16 位颜色深度 png 的新类 pdf 类。

有人有想法么?

0 投票
3 回答
2185 浏览

java - 16位数据双线性插值的Java错误

我在对 16 位数据使用双线性插值时遇到问题。我有两个图像,origImage 和 displayImage。我想使用 AffineTransformOp 通过 AffineTransform 将 origImage 过滤为 displayImage ,这是显示区域的大小。origImage 的类型为 BufferedImage.TYPE_USHORT_GRAY,并具有 sun.awt.image.ShortInterleavedRaster 类型的栅格。这是我现在拥有的代码

为了显示错误,我创建了 2 个渐变图像。一个具有 15 位范围内的值(最大值为 32767),一个具有 16 位范围内的值(最大值为 65535)。下面是两张图

15 位图像 替代文字

16 位图像 替代文字

这两个图像以相同的方式创建并且看起来应该相同,但请注意横跨 16 位图像中间的线。起初我认为这是一个溢出问题,但奇怪的是它出现在渐变的中心而不是像素值较高的末端。此外,如果这是一个溢出问题,我会怀疑 15 位图像也会受到影响。

对此的任何帮助将不胜感激。

我只是想知道为什么没有人回答,我是否提供了足够的信息?是否需要更多信息?

下面是我用来生成 AffineTransform 的代码。所有引用的变量都是根据用户输入(鼠标移动)计算得出的,并且应该是正确的(包括我自己在内的很多人都对其进行了测试)。希望这可以帮助解决错误。

我仍然不知道这里发生了什么。我真的很感激可以提供的任何帮助。我还附上了我遇到的真实图像中发生的错误示例,以供更多参考。

这是手部 X 光片中发生的错误 替代文字

这是一个放大版本,重点放在拇指和食指之间的区域。 替代文字

再次注意错误不会出现在极白的区域,而是出现在动态范围中间的值上,就像在渐变图像中一样。

我发现了更多信息。我正在调整一些转换,发现如果我只是通过单位矩阵进行过滤,则不会发生该错误。如果我翻译一个整数,它也不会发生。如果我翻译一个非整数量,它确实会发生。如果我缩放 1 以外的任何数量(整数或非整数),也会发生这种情况。希望这会有所帮助。

经过更多的实验,该错误肯定会出现在最大强度一半(65535/2 = 32767.5)之间的边界像素处。它也只发生在这个值上。希望对诊断有帮助!!

应 AlBlue 的要求,这里的代码完全独立于我的可以生成错误的应用程序。请注意,在原始帖子中,我包含了使用以下代码生成的图像渐变,但是我放大了其中一个渐变以更好地显示效果。您应该在 0.5 转换后的图像上看到四次效果,而不是在其他两个图像中的任何一个上。另请注意,在缩放除 1 以外的任何数量时都会出现此错误。只需将 AffineTransform.getTranslateInstance() 替换为 AffineTransform.getScaleInstance(0.9, 0.9) 即可查看该错误。

作为另一个更新,我刚刚在 Fedora 10 上进行了尝试,发现错误仍然存​​在。

0 投票
3 回答
345 浏览

assembly - 将处理器设置为 32 位模式

似乎以下是许多教程中给出的关于将处理器从 16 位切换到 32 位的常用方法:

为什么我不简单地执行以下操作:

有什么我想念的吗?可能我唯一能想到的就是我无法在 cr0 寄存器上执行这样的操作。

0 投票
3 回答
2352 浏览

assembly - 80x86 16 位 asm: lea cx, [cx*8+cx] 导致 NASM 出错(编译 .com 文件)

NASM 给出的错误(尽管我的操作系统正常)是“无效的有效地址”。

现在我已经看到了许多关于如何使用 LEA 的示例,我认为我做对了,但我的 NASM 不喜欢它。我试过lea cx, [cx+9]了,它奏效了;lea cx, [bx+cx]没有。

现在,如果我将寄存器扩展到 32 位(即lea ecx, [ecx*8+ecx]),一切都会好起来的,但我只能使用 16 位和 8 位寄存器。

这里有没有知识渊博的人可以向我解释为什么我的汇编程序不允许我按照我认为应该使用的方式使用 lea ?

0 投票
1 回答
235 浏览

string - 构建 16 位操作系统 - 字符数组不起作用

我正在构建一个 16 位操作系统。但是字符数组似乎不起作用。

这是我的示例内核代码:

它打印:

这意味着 putchar 函数工作正常,但是

不管用。

我正在编译它:

我应该怎么办?

0 投票
2 回答
3048 浏览

assembly - MOV BX,[SI] - ASM 问题

我在理论上在高中学习 ASM 8086。
当我这样做时:
MOV BX,[SI]
SI+1 是去 BH 还是 BL?
谢谢 :-)