Index: tools/skimage_main.cpp |
diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp |
index 572f9f54f6a8040eb0280db1742c206b98a9083c..6cfc36c7372820760d5986e5e03e434cba3b3de6 100644 |
--- a/tools/skimage_main.cpp |
+++ b/tools/skimage_main.cpp |
@@ -489,6 +489,22 @@ static void append_path_separator_if_necessary(SkString* directory) { |
} |
} |
+/** |
+ * Return true if the filename represents an image. |
+ */ |
+static bool is_image_file(const char* filename) { |
+ const char* gImageExtensions[] = { |
+ ".png", ".PNG", ".jpg", ".JPG", ".jpeg", ".JPEG", ".bmp", ".BMP", |
+ ".webp", ".WEBP", ".ico", ".ICO", ".wbmp", ".WBMP", ".gif", ".GIF" |
+ }; |
borenet
2013/06/28 20:02:02
I agree that this is cumbersome, but I think it's
|
+ for (size_t i = 0; i < SK_ARRAY_COUNT(gImageExtensions); ++i) { |
+ if (SkStrEndsWith(filename, gImageExtensions[i])) { |
+ return true; |
+ } |
+ } |
+ return false; |
+} |
+ |
int tool_main(int argc, char** argv); |
int tool_main(int argc, char** argv) { |
SkCommandLineFlags::SetUsage("Decode files, and optionally write the results to files."); |
@@ -528,10 +544,13 @@ int tool_main(int argc, char** argv) { |
SkOSFile::Iter iter(dir); |
SkString filename; |
while (iter.next(&filename)) { |
+ if (!is_image_file(filename.c_str())) { |
+ continue; |
+ } |
SkString fullname = SkOSPath::SkPathJoin(dir, filename.c_str()); |
decodeFileAndWrite(fullname.c_str(), outDirPtr); |
} |
- } else if (sk_exists(readPath)) { |
+ } else if (sk_exists(readPath) && is_image_file(readPath)) { |
decodeFileAndWrite(readPath, outDirPtr); |
} |
} |