summaryrefslogtreecommitdiff
path: root/tools/img2c/img2c.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2013-05-03 14:38:52 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2013-05-03 14:38:52 +0200
commitee7304700b2f058864d6ef588531399eb9104ea9 (patch)
treea346d15138d07b403fcd13c794bd30b32e86a383 /tools/img2c/img2c.cc
parentf07c7bb8707f3c07d98f8c7f5c4cb78a5b285b7b (diff)
PNG error handling, extreme
Diffstat (limited to 'tools/img2c/img2c.cc')
-rw-r--r--tools/img2c/img2c.cc69
1 files changed, 30 insertions, 39 deletions
diff --git a/tools/img2c/img2c.cc b/tools/img2c/img2c.cc
index e24d2b3..ebff6d7 100644
--- a/tools/img2c/img2c.cc
+++ b/tools/img2c/img2c.cc
@@ -7,43 +7,34 @@
int main(int argc, char *argv[])
{
- // QApplication app(argc, argv);
-
-
-
- if(argc < 3) {
- printf("Missing parameter [inputfile] [imgname]\n");
- return 1;
- }
-
- QString file = argv[1];
- QString name = argv[2];
-
- QImage img;
- if(!img.load(file)) {
- printf("Could not open file %s\n", file.toStdString().c_str());
- return 1;
- }
-
- printf("struct __img_%s {\n size_t width;\n size_t height;\n unsigned int pixels[%d];\n unsigned int order;\n}", name.toStdString().c_str(), img.width() * img.height());
- printf(" img_%s = {\n", name.toStdString().c_str());
- printf(" %d,\n", img.width());
- printf(" %d,\n", img.height());
- printf(" {\n");
-
- for(int y = 0; y < img.height(); y++) {
- for(int x = 0; x < img.width(); x++) {
- printf(" 0x%08x", htonl(img.pixel(x, y)));
- if(x != img.width() - 1 || y != img.height() - 1) {
- printf(",");
- }
- printf("\n");
- }
- }
- printf(" },\n");
- printf(" 0x%08x", htonl(0x00010203));
- printf("};\n");
-
- return 0;
- // return app.exec();
+ if(argc < 3) {
+ printf("Missing parameter [inputfile] [outputfile]\n");
+ return 1;
+ }
+
+ QString file = argv[1];
+ QString name = argv[2];
+
+ QImage img;
+ if(!img.load(file)) {
+ printf("Could not open file %s\n", file.toStdString().c_str());
+ return 1;
+ }
+
+ FILE *fp = fopen(name.toStdString().c_str(), "w");
+
+ unsigned int w = img.width();
+ unsigned int h = img.height();
+ (void)fwrite(&w, sizeof(unsigned int), 1, fp);
+ (void)fwrite(&h, sizeof(unsigned int), 1, fp);
+
+ for(int y = 0; y < img.height(); y++) {
+ for(int x = 0; x < img.width(); x++) {
+ unsigned int px = img.pixel(x, y);
+ (void)fwrite(&px, 1, sizeof(unsigned int), fp);
+ }
+ }
+
+ fclose(fp);
+ return 0;
}