音视频开发进阶
文章
Light
Dark
Auto
Posts
图像库 libjpeg-turbo 编译与实践
2019-07-13
6 min read
OpenGL
图像库 libpng 编译与实践
在之前的文章中介绍了 stb_image 图像库,还顺带提到了 libpng 和 libjpeg ,这篇文章就是介绍如何在 Android 平台上用 CMake 编译 libpng 动态库以及 libpng 使用实践。 【简单易用的图像解码库介绍 —— stb_image】 https://glumes.com/post/android/stb-image-introduce/
2019-07-12
4 min read
OpenGL
rust 开发编译 Android 动态库实践
最近关注了一波 rust,一门目前还比较小众但却很强大的编程语言,官网地址如下: https://www.rust-lang.org/ rust 的学习曲线比较陡峭,在开始学习之前建议看看王垠的这篇文章 《如何掌握所有的编程语言》,地址如下: https://www.yinwang.org/blog-cn/2017/07/06/master-pl 学习语言,重要的是掌握其语言特性。 王垠举了一些语言特性的例子: 变量定义 算术运算 for 循环语句,while 循环语句 函数定义,函数调用 递归 静态类型系统 类型推导 lambda 函数 面向对象 垃圾回收 指针算术 goto 语句 看着这些特性是不是很像一些编程语言书的目录🤔 在学习 rust 的时候也可以照着这些语言特性去对比自己是否掌握了。
2019-05-19
4 min read
Android
Android NDK 开发 —— 从 Assets 文件夹加载图片并上传纹理
在 OpenGL 开发中,我们要渲染一张图片,通常先是得到一张图片对应的 Bitmap ,然后将该 Bitmap 作为纹理上传到 OpenGL 中。在 Android 中有封装好的 GLUtils 类的 texImage2D 方法供我们调用。 public static void texImage2D(int target, int level, int internalformat, Bitmap bitmap, int type, int border) 该方法的底层原理实际上也是解析了该 Bitmap ,得到了 Bitmap 所有的像素数据,类似于 Android NDK 关于 Bitmap 操作的 AndroidBitmap_lockPixels 方法,如果你不太了解该方法,可以参考这篇文章:Android JNI 之 Bitmap 操作。 得到了所有像素数据之后,实际最终还是调用了 OpenGL 的 glTexImage2D 来实现纹理上传。当然,如果可以直接得到所有数据,也不需要走解析 Bitmap 这一步了,这种场景最常见的就是把相机作为输入了。
2019-05-14
2 min read
OpenGL
简单易用的图像解码库介绍 —— stb_image
避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/Mh_cLQeRy5J5AufeaGaOmA 说到图像解码库,最容易想起的就是 libpng 和 libjpeg 这两个老牌图像解码库了。 libpng 和 libjpeg 分别各自对应 png 和 jpeg 两种图像格式。这两种格式的区别如下: png 支持透明度,无损压缩的图片格式,能在保证不失真的情况下尽可能压缩图像文件的大小,因此图像质量高,在一些贴纸应用中也大部分用的是 png 图片。 jpg 不支持透明度,有损压缩的图片格式,有损压缩会使得原始图片数据质量下载,也因此它占用的内存小,在网页应用中加速速度快。 要想在工程中同时解码 png 和 jpeg 格式图片,就必须同时引用这两种库,而且还得经过一系列编译步骤才行。 在这里,介绍一个简单易用的图像库:stb_image 。Github 地址为:https://github.com/nothings/stb ,目前已经有了 9600+ Star 。它的使用非常简单,看看 README 可能你就会了。
2019-05-12
4 min read
Android
博客图床迁移记
微博图床一时爽,迁移火葬场 前几天在群里看到说新浪微博图床挂掉了,图床上的图片链接单独访问还可以,但是在博客文章上就显示不出来了。 去自己网站上看一下,果然,连博客首页图片都加载不出来了,极大地影响了阅读体验呀。 还好图片链接是可以访问的,这就意味着图片还在,还来得及做迁移和备份。 回顾之前用了好多免(hao)费(yang)图(mao)床,从最早的 七牛,到 Cloudinary,再到 微博图床。七牛由于是临时域名,没有及时备份图片,导致图都没了,而 Cloudinary 和 微博图床 倒还是可以继续访问的。不过这种薅羊毛总不是个办法,万一服务商政策变了,又得再迁移图片了。 果然,免费的才是最贵的。
2019-05-02
3 min read
learning-insights
进击的 Vulkan 移动开发之 SwapChain
Vulkan 开发的系列文章: 进击的 Vulkan 移动开发(一)之今生前世 进击的 Vulkan 移动开发(二)之谈谈对渲染流程的理解 进击的 Vulkan 移动开发之 Instance & Device & Queue 进击的 Vulkan 移动开发之 Command-Buffer 在之前的文章中,讲到了 Command-Buffer 提交给 Queue 去执行,也提到了 Vulkan 实现跨平台机制,是有一些拓展的,这里就讲讲 Vulkan 窗口系统的拓展(Vulkan Window System Integration WSI),如下图所示:
2019-04-07
9 min read
Vulkan
进击的 Vulkan 移动开发之 Command Buffer
Vulkan 开发的系列文章: 进击的 Vulkan 移动开发(一)之今生前世 进击的 Vulkan 移动开发(二)之谈谈对渲染流程的理解 进击的 Vulkan 移动开发之 Instance & Device & Queue 此篇文章继续学习 Vulkan 中的组件:Command-Buffer 。
2019-01-09
6 min read
Vulkan
进击的 Vulkan 移动开发之 Instance & Device & Queue
Vulkan 开发的系列文章: 进击的 Vulkan 移动开发(一)之今生前世 进击的 Vulkan 移动开发(二)之谈谈对渲染流程的理解 在 Vulkan 的系列文章中出现过如下的图片: 这张图片很详细的概括了 Vulkan 中的重要组件以及它们的工作流程,接下来的文章中会针对每个组件进行学习讲解并配上相关的示例代码,首先是 Instance、Device 和 Queue 组件。
2019-01-07
6 min read
Vulkan
进击的 Vulkan 移动开发(一)之今生前世
捋一捋 Vulkan 。
2018-12-07
5 min read
Vulkan
««
«
7
8
9
10
11
»
»»