从Python字符串创建16位TIFF图像

2024-05-15 15:08:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在16位深度和颜色模式下使用scanner,所以我修改了python imaging sane(它不支持16位深度的RGB tiff),以便从扫描仪(epson v500)接收python字符串中的图像。在

这是我用来将数据从扫描仪发送到python字符串的修改函数:

#define READSIZE 32768

static PyObject *
SaneDev_read(SaneDevObject *self, PyObject *args)
{
SANE_Status st;
unsigned char c_buf[READSIZE];
SANE_Int len, maxlen;
maxlen = READSIZE;
if (!PyArg_ParseTuple(args, ""))
{
        return NULL;
}
st = (int) sane_read(self->h, (SANE_Byte *) c_buf, maxlen, &len);
return Py_BuildValue("is#", st, c_buf, len);
}

我使用这个python脚本来接收和使用数据:

^{pr2}$

这个脚本在8位深度下工作得很好,但是当深度设置为16位时,我会得到一个颜色错误的图像

以下是两个例子:

with 8 bit depth

with 16 bit depth

问题出在哪里?在

编辑:我使用pgmagick,这是graphicsmagick的python包装器;graphicsmagick是在quantum depth设置为16位的情况下编译的。在


Tags: 数据字符串图像readlen颜色扫描仪pyobject