博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像库stb_image
阅读量:5924 次
发布时间:2019-06-19

本文共 1708 字,大约阅读时间需要 5 分钟。

hot3.png

目前一般主流的图像格式也就是bmp,jpg,png,tga,dds,除了DDS一般是给DX用的,虽然一堆OpenGL程序也有用的,但是我一般只用png和tga,

png不用说了,带alpha通道,tga就是4通道信息,如果你想3通道存颜色,4通道不存透明而是别的什么信息,又有编辑器如Photoshop支持的,tga就用得着,而png虽然

也能存alpha,但是编辑器不支持Alpha单独编辑那种诡异玩法就不行了。然尔一般也就png。所以来吃狗!!!

简单的写个,读写png的例子,精简自自带例子,(0,0)是左上角像素

 

#include 
#define STB_IMAGE_WRITE_IMPLEMENTATION#include "stb_image_write.h"#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"int main(int argc, char** argv){ int w, h, n; //rgba //load image unsigned char *data = stbi_load("rgba.png", &w, &h, &n, 0); printf("%d, %d, %d\n", w, h, n); //change pixel //rgba,write 10 red pixel at line 11 for (int dx = 0; dx < 10; ++dx) { data[n * w * 10 + dx * n + 0] = 255; data[n * w * 10 + dx * n + 1] = 0; data[n * w * 10 + dx * n + 2] = 0; data[n * w * 10 + dx * n + 3] = 255; } //write image stbi_write_png("write.png", w, h, n, data, w * 4); stbi_image_free(data); return 0;}

 

#include 
#include
#include
const unsigned char * loadfile(const std::string &file, int &size){ std::ifstream fs(file.c_str(), std::ios::binary); fs.seekg(0, std::ios::end); size = fs.tellg(); char * data = new char[size + 1]; fs.seekg(0); fs.read(data, size); fs.close(); data[size] = 0; return (unsigned char *)data;}int main(){ int w; int h; int channels; int size; const unsigned char * data = loadfile("D:/1.jpg", size); const unsigned char * logo = stbi_load_from_memory(data, size, &w, &h, &channels, 0); for (int i = 0; i < 3; ++i) { std::cout << (int)logo[i] << std::endl; }}

 

转载于:https://my.oschina.net/robslove/blog/3003787

你可能感兴趣的文章
Kali linux 2016.2(Rolling)里Metasploit连接(包括默认和自定义)的PostgreSQL数据库...
查看>>
史上最全面的面试资料(包含所有IT大公司)
查看>>
MS Access 数据库操作使用OledbParameter出现的怪异问题
查看>>
SharePoint Framework Extensions GA Release
查看>>
关于同步VSS服务器上的代码发生Eclipse里面的项目全部不见了
查看>>
前端常用工具
查看>>
Axure RP 简介
查看>>
linux命令
查看>>
Swoole源代码学习记录(十五)——Timer模块分析
查看>>
MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
查看>>
当发布时报错: 找不到 obj\Debug\Package\PackageTmp\xxx.aspx 文件
查看>>
Linq使用Group By 1
查看>>
[Step By Step]SAP HANA PAL逻辑回归预测分析Logistic Regression编程实例FORECASTWITHLOGISTICR(预测)...
查看>>
文章标题
查看>>
堆排序
查看>>
第 4 章 gulpjs
查看>>
3.4. IP Address
查看>>
Flex builder的调试时需要flash player debug版本
查看>>
Ubuntu 中启用 root 帐号
查看>>
a2sd+状态下应用程序丢失的解决办法
查看>>