gpt4 book ai didi

c++ - 在 PDF 页面上渲染图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:02 27 4
gpt4 key购买 nike

我正在尝试在 PDF 页面中创建和呈现图像。我正在使用 PDEImageCreate用于创建 PDEImage 对象并随后在 PDPagePDEContent 中设置此对象的 API。

但是,我无法在页面上呈现正确的图像。我发送原始数据作为输入并使用 DeviceRGB 颜色空间。这是我正在使用的代码的快照:

unsigned char* mImageDataBuffer;    
mImageDataBuffer = (unsigned char*)ASmalloc((ASSize_t)30000);

imageAttrs.bitsPerComponent = 8;
imageAttrs.flags = kPDEImageIsMask;
imageAttrs.width = 100;
imageAttrs.height = 100;
imageAttrs.intent = ASAtomNull;

imageMatrix.a = ASFloatToFixed(500.0);
imageMatrix.b = fixedZero;
imageMatrix.c = fixedZero;
imageMatrix.d = ASFloatToFixed(500.0);
imageMatrix.h = fixedZero;
imageMatrix.v = fixedZero;

for (int i = 0; i < 30000;)
{
mImageDataBuffer[i++] = 0x00;
mImageDataBuffer[i++] = 0x00;
mImageDataBuffer[i++] = 0x0f;
}

PDEColorValueP pdeColorValue = (PDEColorValueP)ASmalloc(sizeof(PDEColorValue));
memset(pdeColorValue, 0, sizeof(PDEColorValue));
pdeColorValue->color[0] = FloatToASFixed(255.0f);
pdeColorValue->color[1] = FloatToASFixed(0.0f);
pdeColorValue->color[2] = FloatToASFixed(0.0f);

pdeImage = PDEImageCreate(&imageAttrs, (Uns32)sizeof(imageAttrs), &imageMatrix, 0, PDEColorSpaceCreateFromName(ASAtomFromString("DeviceRGB")),
pdeColorValue, NULL, 0, mImageDataBuffer, 0);

主要有两个问题我无法找出原因-

  1. 我尝试将随机值放入 mImageDataBuffer 中,如果页面上呈现任何内容,它始终是黑白的。

  2. 如果数据缓冲区的一个字节是 0x00,如果其余字节不为零,Acrobat 将抛出一条错误消息。

我确定我错过了一些重要的东西。有人能指出我正确的方向吗?

最佳答案

最后一个参数不应该是mImageDataBuffer的大小吗?例如:

pdeImage = PDEImageCreate(&imageAttrs, (Uns32)sizeof(imageAttrs), &imageMatrix, 0,       PDEColorSpaceCreateFromName(ASAtomFromString("DeviceRGB")),
pdeColorValue, NULL, 0, mImageDataBuffer, 30000);

关于c++ - 在 PDF 页面上渲染图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973599/

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