tools/pinspect: quick tool to inspeact the header (and rough validity) of 1 or more picture files
Review URL: https://codereview.appspot.com/6295085

git-svn-id: http://skia.googlecode.com/svn/trunk@4258 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gyp/tools.gyp b/gyp/tools.gyp
index 04356c6..a43b811 100644
--- a/gyp/tools.gyp
+++ b/gyp/tools.gyp
@@ -19,6 +19,7 @@
         'skhello',
         'skimage',
         'render_pictures',
+        'pinspect',
       ],
     },
     {
@@ -75,6 +76,20 @@
         'ports.gyp:ports',
       ],
     },
+    {
+      'target_name': 'pinspect',
+      'type': 'executable',
+      'sources': [
+        '../tools/pinspect.cpp',
+      ],
+      'dependencies': [
+        'core.gyp:core',
+        'effects.gyp:effects',
+        'images.gyp:images',
+        'ports.gyp:ports',
+        'utils.gyp:utils',
+      ],
+    },
 
   ],
 }
diff --git a/tools/pinspect.cpp b/tools/pinspect.cpp
new file mode 100644
index 0000000..0105734
--- /dev/null
+++ b/tools/pinspect.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkBitmap.h"
+#include "SkCanvas.h"
+#include "SkOSFile.h"
+#include "SkPicture.h"
+#include "SkStream.h"
+#include "SkString.h"
+
+static void inspect(const char path[]) {
+    SkFILEStream stream(path);
+    if (!stream.isValid()) {
+        printf("-- Can't open '%s'\n", path);
+        return;
+    }
+
+    printf("Opening '%s'...\n", path);
+
+    {
+        int32_t header[3];
+        if (stream.read(header, sizeof(header)) != sizeof(header)) {
+            printf("-- Failed to read header (12 bytes)\n");
+            return;
+        }
+        printf("version:%d width:%d height:%d\n", header[0], header[1], header[2]);
+    }
+
+    stream.rewind();
+    SkPicture pic(&stream);
+    printf("picture size:[%d %d]\n", pic.width(), pic.height());
+}
+
+int main(int argc, char* const argv[]) {
+    if (argc < 2) {
+        printf("Usage: pinspect filename [filename ...]\n");
+    }
+    for (int i = 1; i < argc; ++i) {
+        inspect(argv[i]);
+        if (i < argc - 1) {
+            printf("\n");
+        }
+    }
+    return 0;
+}