Update filter tool to handle PNG encoded SkBitmaps
https://codereview.appspot.com/6813094/
git-svn-id: http://skia.googlecode.com/svn/trunk@6379 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/filtermain.cpp b/tools/filtermain.cpp
index f0b2e82..5d522d6 100644
--- a/tools/filtermain.cpp
+++ b/tools/filtermain.cpp
@@ -7,6 +7,7 @@
#include "SkDevice.h"
#include "SkGraphics.h"
+#include "SkImageDecoder.h"
#include "SkImageEncoder.h"
#include "SkPicture.h"
#include "SkPicturePlayback.h"
@@ -36,10 +37,12 @@
virtual bool translate(SkScalar dx, SkScalar dy) SK_OVERRIDE {
++fTransTot;
+#if 0
if (0 == dx && 0 == dy) {
++fTransSkipped;
return true;
}
+#endif
return INHERITED::translate(dx, dy);
}
@@ -47,10 +50,12 @@
virtual bool scale(SkScalar sx, SkScalar sy) SK_OVERRIDE {
++fScalesTot;
+#if 0
if (SK_Scalar1 == sx && SK_Scalar1 == sy) {
++fScalesSkipped;
return true;
}
+#endif
return INHERITED::scale(sx, sy);
}
@@ -106,6 +111,9 @@
typedef SkPicture INHERITED;
};
+static bool PNGEncodeBitmapToStream(SkWStream* stream, const SkBitmap& bitmap) {
+ return SkImageEncoder::EncodeStream(stream, bitmap, SkImageEncoder::kPNG_Type, 100);
+}
// This function is not marked as 'static' so it can be referenced externally
// in the iOS build.
@@ -167,7 +175,8 @@
SkFILEStream inStream(inFile.c_str());
if (inStream.isValid()) {
- inPicture = SkNEW_ARGS(SkPicture, (&inStream));
+ inPicture = SkNEW_ARGS(SkPicture,
+ (&inStream, NULL, &SkImageDecoder::DecodeStream));
}
if (NULL == inPicture) {
@@ -192,7 +201,7 @@
SkFilterPicture outPicture(inPicture->width(), inPicture->height(), filterRecord);
SkFILEWStream outStream(outFile.c_str());
- outPicture.serialize(&outStream);
+ outPicture.serialize(&outStream, &PNGEncodeBitmapToStream);
}
if (!textureDir.isEmpty()) {