Sure! There are two BLOB fields, and I think this one is the image data (as it's labeled 'image' lol)
564D50340000070001004E0000000A0000000A0058000000850000000B00DD0000000B0000001400E80000001C0300001F0004040000AA0000003C00AE040000
| [reply] [d/l] |
| [reply] [d/l] |
| [reply] [d/l] |
| [reply] |
| [reply] |
I get an error on line 17 "no such table: image" so i looked at the DB, and there is a table name 'image'. It's structured thusly:
CREATE TABLE image (a int, b int, c int, d int, tileset int, retrieved int, current bool, etag text, size int, data blob, UNIQUE(a, b, c, d) ON CONFLICT REPLACE);
CREATE UNIQUE INDEX index_abcd on image (a, b, c, d);
CREATE INDEX index_tileset on image (tileset);
CREATE INDEX index_retrieved_tileset on image (retrieved, tileset);
So we open up the table image, and dump the field data, right?
#!perl
use strict;
use DBI;
my $database = 'MapTiles.sqlitedb';
my $tablename = 'image';
# open db
my $dbh = open_db($database);
my $imgfolder = 'maptiles-output';
if (! -d $imgfolder){
mkdir($imgfolder, 0755) or die "$!";
}
# select data
my $sql = 'SELECT data from '.$tablename;
my $sth = $dbh->prepare($sql);
$sth->execute();
# recreate files
while (my ($zoom, $x, $y, $flags, $length, $data) = $sth->fetchrow_arr
+ay){
my $filename = "$imgfolder/$x,$y\@$zoom.png";
print "creating $filename\n";
open OUT,'>:raw',$filename or die "$filename : $!";
print OUT $data;
close OUT;
}
# open db
sub open_db {
my $dbfile = shift;
my $dbh = DBI->connect(
"dbi:SQLite:dbname = $dbfile",
"", "", { RaiseError => 1 }
) or die $DBI::errstr;
return $dbh;
}
| [reply] [d/l] |
"main"."edition"
"main"."image"
"main"."image"
"main"."image"
"main"."image"
"main"."sqlite_master"
"temp"."sqlite_temp_master"
"main"."edition"
"main"."image"
"main"."version"
| [reply] [d/l] |