将 pnglib 中的数据显示为 ximage

2024-02-09

我需要导入 PNG 并将其显示在 Motif 应用程序的屏幕上。由于我自己最清楚的原因,我不想使用超出需要的库,并且我想只使用 Motif 和 pnglib。

我已经为此奋斗了几天,我想放下我的骄傲并寻求一些帮助。此屏幕截图显示了问题:

https://s3.amazonaws.com/gtrebol264929/pnglib_fail.png https://s3.amazonaws.com/gtrebol264929/pnglib_fail.png

右侧的窗口显示图像应是什么样子,左侧的窗口是我的 Motif 应用程序,显示它在我的应用程序中的样子。显然我已经得到了图像数据,因为可以看到图片的基本概念。但也很明显,我搞砸了如何将像素数据从 pnglib 获取到 XImage 中。下面是我的代码:

char * xdata = malloc(width * height * (channels + 1));
memset(xdata,100,width * height * channels);    

int colc = 0;
int bytec = 0;
while (colc < width) {
    int rowc = 0;
    while(rowc < height) {
        png_byte * row = png.row_pointers[rowc];
        memcpy(&xdata[bytec],&row[colc],1);
        bytec += 4;

        rowc += 1;
    }
    colc += 1;
}



XImage * img = XCreateImage(display, CopyFromParent, depth * channels, ZPixmap, 0, xdata, width, height, 32, bytes_per_line);
printf("PNG %ix%i (depth: %i x %i) img: %p\n",width,height,depth,channels,img);


XPutImage (display, win, gc, img, 0, 0, 0, 0, width, height); // 0, 0, 0, 0 are src x,y and dst x,y

png.row_pointers 是来自 pnglib 的像素数据。

我很确定我只是误解了像素数据的存储方式,但我无法完全弄清楚我做错了什么。很感谢任何形式的帮助。

一切顺利

Garry


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 pnglib 中的数据显示为 ximage 的相关文章

  • Xlib: extension “XInputExtension“ missing on display “:1.0“

    ubuntu 安装vscode之后点击生成的图标无法打开 xff08 没有图标记得重启 xff09 xff0c 建议在安装地址直接打开可以看到报错信息 如果是root用户 xff0c 可能需要 no sandbox参数才能启动 继续执行 c
  • window10下libpng编译

    系列文章目录 文章目录 系列文章目录 前言 一 问题原因 二 使用步骤 1 引入zlib库 2 configure 3 Grnerate 前言 libpng编译出错 Selecting Windows SDK version 10 0 19
  • X11 鼠标移动事件

    在 XLib 中创建窗口时 我提供给大家的口罩有哪些SetWindowAttributes event mask成员 我必须将什么传递给第 11 个参数XCreateWindow 我在主消息循环中寻找的事件是什么 我使用的地方XNextEv
  • linux、C++、xft:如何使用它?

    我尝试使用 Xft tutorial 好吧 让他们称之为教程 看起来像是在朝鲜营地写的 我也发现了这个one 那么让我尝试一步一步地进行 g XftTest cc lX11 lXft pkg config cflags freetype2
  • dyld:未加载库:/usr/local/lib/libpng16.16.dylib 与 php 相关的任何内容

    使用任何 php 应用程序都会导致 dyld Library not loaded usr local lib libpng15 15 dylib Referenced from usr local bin php Reason image
  • 在 Xlib 中捕获按钮事件,然后将事件传递给客户端

    我正在开发一个窗口管理器 主要是作为练习 但我遇到了一个问题 我希望能够将单击的窗口提升到堆栈顶部 目前 我在 Button1 和 ControlMask 上使用 XGrabButton 来允许移动窗口 当我按住 Ctrl 键并单击窗口时
  • xlib 有活动窗口事件吗?

    我正在尝试编写一个程序 使用 Xlib 跟踪活动窗口何时发生变化 我很难找出最好的方法来做到这一点 到目前为止 这些是我的想法 每秒使用 NET ACTIVE WINDOW 获取活动窗口 如果它已更改 则运行该事件的相关代码 获取所有窗口的
  • X11中的截图

    使用 Xlib 库可以使用哪些函数来截取 X11 桌面的屏幕截图 我更喜欢一种比获取单个像素更有效的方法 Thanks X11中截屏的 标准工具是使用 xwd root gt myscreen xwd 然后 转换为 pnm xwd2pnm
  • 监听键盘事件而不捕获它们?

    我正在编写一个命令行应用程序 它侦听 X Windows 中的 Control 键释放事件 并在检测到这些事件时向另一个进程发出警报 作为 GNU Linux 的新手 我宁愿避免摸索 GCC 因此我正在寻找基于脚本的解决方案 由于我对 Py
  • Xlib:关闭窗口总是导致致命的 IO 错误?

    我不确定为什么会发生这种情况 但是当我尝试使用 X 按钮关闭时 我使用 C 中的 Xlib 创建的任何窗口都会向终端输出错误 我可以通过编程方式关闭它 不会出现错误 只需按 X 按钮即可 错误如下 XIO fatal IO error 11
  • 更新 opencv 库后仍存在 Libpng 漏洞问题

    我在我的应用程序中使用以下依赖项 dependencies compile fileTree include jar dir libs compile project zxing 2 3 0 compile project ColorPic
  • 抓住键盘不允许改变焦点

    一旦我使用display grab keyboard 似乎没有其他窗口知道自己的焦点 随着键盘抓取运行 我可以选择其他窗口 甚至向它们发送按键事件 但如果此窗口是文本输入 则不会有闪烁的光标 我读过一些关于抓取键盘生成焦点事件的内容 但这并
  • Xlib 截图调用

    看到问题后如何在Linux中截图 高fps 编程 https stackoverflow com questions 25162580 how to take screenshot high fps in linux programming
  • 在android ndk项目中添加libpng

    我搜索了很多有关将 libpng 链接到我的 android ndk 项目的主题 但我找到了解决我的问题的正确答案 我希望有人能帮助我 这是我的项目的层次结构 jni different cpp files different hpp fi
  • X11 非剪裁子窗口

    X 有非裁剪子窗口的概念吗 中的行为 Windows 和 OSX 的这些是 父母总是站在孩子后面 当父项关闭时 子项也会自动关闭 孩子们在移动时跟随父母 如果答案是否定的 那么我可以模拟 2 和 3 但是 1 怎么样 Thanks Cosm
  • libpng 错误:不是 PNG 文件

    我曾多次尝试将 Android Studio 构建工具升级到 1 3 1 以上 但最终总是遇到此 libpng 错误 我通过完全删除 Maven 依赖项解决了其中一个错误 因为 gradle 控制台准确地指出了问题文件所在的位置 但现在我遇
  • 如何使用 xlib 和 glx 创建具有透明背景的支持 OpenGL 的窗口

    我想创建一个具有透明背景的窗口 然后使用 OpenGL 在其上渲染一些内容 我不想使用捕捉窗口后面的任何内容然后将其绘制为背景的技巧 我想要真正的透明度 我正在运行合成管理器 我没有使用任何 GUI 库 GTK QT 只是原始的 xlib
  • meld - gi.glib.GError:主题中不存在图标“meld-change-apply-right”。安装有什么问题吗?

    我已经成功安装了 meld 3 14 2 和所有依赖包 通过从源代码编译每个包 并且所有包都安装在 NFS 共享上 prefix meld对于融合工具 prefix meld deps对于依赖项 最后 我调用了该工具 我可以看到 GUI 但
  • 单击透明 xlib 窗口

    我有一个透明的 类似水印的应用程序 它是用 C 语言的 XLib 编写的 目前 如果您单击应用程序上的任何位置 什么也不会发生 但我希望它将鼠标输入传递到其下方的任何内容 例如如果您单击 X 关闭应用程序下方的窗口 它应该关闭应用程序 而不
  • 导入 pygame.font 失败

    import pygame对我来说效果很好 但是import pygame font失败并出现错误 ImportError dlopen Library Frameworks Python framework Versions 2 7 li

随机推荐

  • Monogame:WAV 无法播放

    这是 MonoGame 3 4 我通过 VS2013 使用它 我正在使用 mgcb 编译我的 WAV 文件 就像我的纹理一样 MGCB 工作正常 但是当涉及到使用SoundEffect类 它不播放任何内容 没有例外并且SoundEffect
  • CKEDITOR,在文本编辑器 onLoad 上自动聚焦

    有人知道如何在页面加载时自动聚焦于 CKEDITOR 文本区域吗 目前 用户必须先单击文本区域才能开始输入 像 Google 一样 我希望加载页面 并且用户可以立即开始输入 而无需单击文本区域 这是启动 CKEDITOR 的当前代码
  • webRTC - 视频导致互联网上的通话中断

    更新1 我尝试像这样改变视频约束 var mediaConstraints audio true We want an audio track video width min 160 ideal 320 max 640 height min
  • 浏览器使用哪种等宽字体?

    对于 CSS 如果您指定font family monospace 我的理解是浏览器选择其默认 首选等宽字体 如果这是正确的 您如何确定您的浏览器正在使用哪种等宽字体 可以使用 5 个通用系列 serif sans serif cursiv
  • 在 Notepad++ 中显示不匹配的 html 标签

    有没有办法在 Notepad 中突出显示不匹配的 HTML 标签 例如 如果我有以下 HTML 我想要标签以某种方式突出显
  • 由于一个或多个外键属性不可为空,因此无法更改该关系

    使用 EF 更新期间出现以下错误 操作失败 无法更改关系 因为一个或多个外键属性不可为空 当关系发生更改时 相关的外键属性将设置为空值 如果外键不支持空值 则必须定义新关系 必须为外键属性分配另一个非空值 或者必须删除不相关的对象 有没有g
  • Codeigniter 论坛集成

    我想将一个简单的论坛与 Codeigniter 应用程序集成 想知道是否有人有任何建议 干杯 Laurence 我会看一下普通论坛 有很多插件 开源 而且很容易集成 即 Codeigniter http vanillaforums org
  • 以编程方式设置 UIView 的自动调整大小掩码?

    我必须以编程方式设置 autoresizingMaskUIView 我不知道如何实现这个 要实现屏幕截图中的效果 您需要执行与 DrummerB 建议相反的操作 你想要一个固定的上边距 这样你就可以让其他每一面都变得灵活 如下所示 目标C
  • 指定 Python argparse 输入参数的日期格式

    我有一个需要一些命令行输入的 Python 脚本 我正在使用argparse用于解析它们 我发现文档有点混乱 找不到检查输入参数格式的方法 我通过以下示例脚本解释了检查格式的含义 parser add argument s startdat
  • 如何在 Scala 代码中读取压缩的 xml 文件?

    如何直接从 Scala 程序中的压缩文件访问 XML 数据文件 有没有直接的方法可以以编程方式解压缩并读取 Scala 代码中的内容 以下是 2 8 1 中执行此操作的几种方法 cat gt root xml lt lt EOF
  • 如何在具有 API 7 的 Android 应用程序中使用 NumberPicker?

    我的应用程序的最小 sdk 是 7 但我可以使用 sdk 版本 11 中的 DialogFragment 因为它位于我的 lib 目录中的支持库中 我想做这样的例子 http developer android com guide topi
  • 如何防止 IE 中的 javascript: href 链接触发 window.onbeforeunload ?

    我正在为我的表单构建一个故障安全机制 它将警告用户 如果他们离开页面 他们的表单数据将会丢失 类似于 gmail 的做法 window onbeforeunload function if formIsDirty return You ha
  • 从直方图曲线中选择最佳值范围

    设想 我正在尝试跟踪两个不同颜色的物体 一开始 系统会提示用户将第一个彩色对象 例如 可能是红色 放在相机前面的特定位置 在屏幕上用矩形标记 并按任意键 然后我的程序将获取帧的该部分 ROI 并分析其中的颜色 找到要跟踪的颜色 对于第二个对
  • Edge chromium 不会显示基本身份验证弹出窗口?

    我有一个 Apache 服务器 v2 4 43 为我的网站提供服务 并且我使用一个简单的 htpasswd 我使用指令 AuthUserFile 在 htaccess 中调用它来进行身份验证 现在 该解决方案适用于所有浏览器 将显示一个弹出
  • 应用程序内的 Dropbox 身份验证

    有什么方法可以在 iPhone 中的 Dropbox 应用程序中对用户进行身份验证吗 I using Dropbox IOS https www dropbox com developers start authentication ios
  • 如果一个同步方法调用另一个非同步方法,该非同步方法是否有锁

    在Java中 如果一个同步方法包含对非同步方法的调用 那么另一个方法是否仍然可以同时访问该非同步方法 基本上我要问的是同步方法中的所有内容都有锁 包括对其他同步方法的调用 如果一个同步方法调用另一个非同步方法 该非同步方法是否有锁 答案取决
  • 仅在第一次使用 Rspec 调用时存根方法

    如何仅在第一次调用时存根方法 而在第二次调用中它应该按预期运行 我有以下方法 def method do stuff rescue gt MyException sleep rand retry end 我想要的第一个电话do stuff募
  • const 多维数组初始化

    为什么下面的方法有效 class A public int i 1 2 3 1 2 3 1 2 3 static void Main string args 而以下则不然 class A public const int i 1 2 3 1
  • 我可以使用 OkHttp 将本地 IP 地址绑定到我的 SSLSocketFactory 吗?

    我正在努力让 Android 上的 OkHttpClient 使用自定义证书发出 HTTPS 请求 同时绑定到特定网络接口的本地地址 我目前的尝试使用以下内容OkHttpClient val client OkHttpClient Buil
  • 将 pnglib 中的数据显示为 ximage

    我需要导入 PNG 并将其显示在 Motif 应用程序的屏幕上 由于我自己最清楚的原因 我不想使用超出需要的库 并且我想只使用 Motif 和 pnglib 我已经为此奋斗了几天 我想放下我的骄傲并寻求一些帮助 此屏幕截图显示了问题 htt