当前位置: 首页 > wzjs >正文

郑州手机网站推广公司长春网站建设定制

郑州手机网站推广公司,长春网站建设定制,红色专题网站首页模板,建筑招工信息网测试结果 直接上代码 -stdc17,记得编译时指定 C17,创建文件夹的时候要用。不需要创建文件夹可以去掉。 // ********************************************* // Brief: save image as ppm, pbm, pgm // Note: // P1 - PBM_ASCII, P2 - PGM_ASCII, P3 …

测试结果

在这里插入图片描述

直接上代码

-std=c++17,记得编译时指定 C++17,创建文件夹的时候要用。不需要创建文件夹可以去掉。

// *********************************************
// Brief: save image as ppm, pbm, pgm
// Note:
// P1 - PBM_ASCII,  P2 - PGM_ASCII,  P3 - PPM_ASCII,
// P4 - PBM_BINARY, P5 - PGM_BINARY, P6 - PPM_BINARY
//
// Date:   13 Jul 2025
// *********************************************
#include <vector>
#include <iostream>
#include <filesystem>static void createPath(const std::string &fullPath)
{std::filesystem::path filePath(fullPath);// get filename without extensionstd::string filename = filePath.stem().string();// create new pathstd::filesystem::path dirPath = filePath.parent_path();// / filename;// create folderif (std::filesystem::exists(dirPath)){} else if (std::filesystem::create_directories(dirPath)){printf("Create Folder Success: %s\n", dirPath.c_str());} else{printf("Create Folder Failed, might already exists: %s\n", dirPath.c_str());}
}/*** PBM - Portable BitMap, 0 - White, 1 - Black**/
static void saveImgAsPBM(const std::string &dumpPath, uint8_t *data, size_t width, size_t height)
{// PBM is an image format, can open with default image viewer on ubuntu.std::string flow_ppm_filename = dumpPath + ".pbm";createPath(flow_ppm_filename);FILE *pOutFile = NULL;pOutFile = fopen(flow_ppm_filename.c_str(), "wb");fprintf(pOutFile, "P4\n");fprintf(pOutFile, "%ld %ld\n", (long) width, (long) height);// fprintf(pOutFile, "1\n");   // no max value for PBM// packing image data, MSB firstconst size_t rowBytes = (width + 7) / 8;std::vector<uint8_t> packed(rowBytes);for (size_t y = 0; y < height; ++y){std::fill(packed.begin(), packed.end(), 0); // clear bufferfor (size_t x = 0; x < width; ++x){const size_t byteIdx = x / 8;const size_t bitPos  = 7 - (x % 8);  // MSB firstif (data[y * width + x]){packed[byteIdx] |= (1 << bitPos);}}// write into filefwrite(packed.data(), 1, rowBytes, pOutFile);}fclose(pOutFile);
}/*** PGM - Portable GreyMap, 0 - Black, MaxNum - White*/
static void saveImgAsPGM(const std::string &dumpPath, uint8_t *data, size_t width, size_t height)
{// PGM is an image format, can open with default image viewer on ubuntu.std::string flow_ppm_filename = dumpPath + ".pgm";createPath(flow_ppm_filename);FILE *pOutFile = NULL;pOutFile = fopen(flow_ppm_filename.c_str(), "wb");fprintf(pOutFile, "P5\n");fprintf(pOutFile, "%ld %ld\n", (long) width, (long) height);fprintf(pOutFile, "255\n"); // set max value to 255fwrite(data, 1, 1 * width * height, pOutFile);fclose(pOutFile);
}/*** PPM - Portable PixMap*/
static void saveImgAsPPM(const std::string &dumpPath, uint8_t *data, size_t width, size_t height)
{// PPM is an image format, can open with default image viewer on ubuntu.std::string flow_ppm_filename = dumpPath + ".ppm";createPath(flow_ppm_filename);FILE *pOutFile = NULL;pOutFile = fopen(flow_ppm_filename.c_str(), "wb");fprintf(pOutFile, "P6\n");fprintf(pOutFile, "%ld %ld\n", (long) width, (long) height);fprintf(pOutFile, "255\n");fwrite(data, 1, 3 * width * height, pOutFile);fclose(pOutFile);
}int main() {const size_t width = 256;const size_t height = 256;const std::string basePath = "./output/test_image";// 1. PBM teststd::vector<uint8_t> pbmData(width * height, 1);for (size_t y = 0; y < height; ++y) {for (size_t x = 0; x < width; ++x) {pbmData[y * width + x] = (x / 16 + y / 16) % 2; // checkerboard pattern}}saveImgAsPBM(basePath + "_pbm", pbmData.data(), width, height);std::cout << "PBM Test finished.\n";// 2. PGM teststd::vector<uint8_t> pgmData(width * height);for (size_t y = 0; y < height; ++y) {for (size_t x = 0; x < width; ++x) {pgmData[y * width + x] = x % 256; // gradient}}saveImgAsPGM(basePath + "_pgm", pgmData.data(), width, height);std::cout << "PGM Test finished.\n";// 3. PPM teststd::vector<uint8_t> ppmData(3 * width * height);for (size_t y = 0; y < height; ++y) {for (size_t x = 0; x < width; ++x) {size_t pos = 3 * (y * width + x);ppmData[pos] = x % 256;       // R, gradient valueppmData[pos + 1] = y % 256;   // G, gradient valueppmData[pos + 2] = 128;       // B}}saveImgAsPPM(basePath + "_ppm", ppmData.data(), width, height);std::cout << "PPM Test finished.\n";return 0;
}

Refference

  • DeepSeek 内容
    • Main 函数编写
    • PBM Packing 代码实现
  • PPM、PGM、PBM三种都是图像文件格式
    在这里插入图片描述
  • PBM Packing 原理
    在这里插入图片描述
http://www.dtcms.com/wzjs/122694.html

相关文章:

  • google地图嵌入网站百度投诉中心24人工客服电话
  • 做个购物商城网站多长时间谷歌seo什么意思
  • 广州企业网站制作哪家好太原首页推广
  • 微信小程序前端开发工具西宁网站seo
  • 清远做网站的公司注册百度推广账号
  • 地方门户网站运营cnzz数据统计
  • 佛山网页网站设计多少钱市场营销策略
  • 做网站在手机端预览乱码了seo外链发布平台
  • 海南网站公司模板免费网站建设
  • 网站app充值记账凭证怎么做友情链接
  • 昆明网站建设公司猎狐科技怎么样磁力搜索
  • 怎么做微拍网站台湾永久免费加密一
  • 用dede做网站后台河南seo
  • 免费看电影的网站是什么班级优化大师电脑版
  • 用jsp做电影网站的界面电子商务软文写作
  • 长沙优化网站价格免费源码资源源码站
  • 北京手机网站开发费用小程序推广运营的公司
  • 建设外贸b2c网站百度新闻官网首页
  • 做bannar在哪个网站参考seo是怎么优化的
  • 河南专业的做网站的公司最近的疫情情况最新消息
  • 中央人民政府网官网北部湾大开发网站点击排名优化
  • 做名片的网站叫什么来着html网页制作代码大全
  • 网站建设在国外爱站网长尾关键词搜索
  • 挂机宝可以做网站吗seo教程自学入门教材
  • 网站建设栏目怎么介绍工具站seo
  • 邳州做网站pzwode百度官网下载安装
  • 做网站 报价 需要了解免费p站推广网站入口
  • 手机网站备案密码找回的方法东莞seo建站公司哪家好
  • 网站建设商业计划书百度搜索数据统计
  • 湖南做网站 联系磐石网络网络销售工作靠谱吗