读取MBTiles数据库里的图片

本文介绍了如何读取MBTiles文件,它基于sqlite3数据库,主要用于移动设备的离线地图存储。
摘要由CSDN通过智能技术生成

MBTiles其实就是sqlite3的数据库,是给移动平台离线存储用的

// SqliteTest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "CppSQLite3.h"

CppSQLite3DB db;
char* pstrFileName = "P:\\OruxMapsImages.db";

int main()
{
	try
	{
		db.open(pstrFileName);
		unsigned char* bin;
		CppSQLite3Binary  blob;

		FILE* phFilef = fopen("P:\\tile1.jpg", "wb");//注意,图片必须用wb,如果不是二进制,图片保存将不正常

		CppSQLite3Query q;
		q = db.execQuery("select image from tiles;");
 
		if (!q.eof())
		{
			int len = 0;
			const unsigned char* ptr = q.getBlobField("image", len);
			blob.setBinary(ptr, len);// setEncoded((unsigned char*)q.fieldValue("image"));
		}
		printf("file size:%d\n", blob.getBinaryLength());
		const unsigned char* pbin = blob.getBinary();

		unsigned int dwWrite = 0;
		fwrite(pbin, sizeof(unsigned char), blob.getBinaryLength(), phFilef);

		fclose(phFilef);

	}
	catch (CppSQLite3Exception &e)
	{
		printf(e.errorMessage());
	}

    return 0;
}




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值