本文主要是介绍Android用C++创建surface显示RGB数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以下在Android 4.4平台开发测试,用于在屏幕直接显示RGB数据,当然,如果要直接显示YUV,写个函数转换一下也能直接显示。
其中从文件中获取RGB的RGB数据可以从这里下载 http://kc.cc/WeVp
#include <cutils/memory.h>#include <unistd.h>
#include <utils/Log.h>#include <binder/IPCThreadState.h>
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>#include <gui/Surface.h>
#include <gui/SurfaceComposerClient.h>
#include <gui/ISurfaceComposer.h>
#include <ui/DisplayInfo.h>
#include <ui/Rect.h>
#include <ui/Region.h>
#include <android/native_window.h>
#include <SkGraphics.h>
#include <SkBitmap.h>
#include <SkCanvas.h>
#include <SkDevice.h>
#include <SkStream.h>
#include <SkImageDecoder.h>#include <hardware/hwcomposer_defs.h>
using namespace android;static inline SkBitmap::Config convertPixelFormat(PixelFormat format) {/* note: if PIXEL_FORMAT_RGBX_8888 means that all alpha bytes are 0xFF, thenwe can map to SkBitmap::kARGB_8888_Config, and optionally callbitmap.setIsOpaque(true) on the resulting SkBitmap (as an accelerator)*/switch (format) {case PIXEL_FORMAT_RGBX_8888: return SkBitmap::kARGB_8888_Config;case PIXEL_FORMAT_RGBA_8888: return SkBitmap::kARGB_8888_Config;c
这篇关于Android用C++创建surface显示RGB数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!