Index: components/enhanced_bookmarks/image_store_util.cc |
diff --git a/components/enhanced_bookmarks/image_store_util.cc b/components/enhanced_bookmarks/image_store_util.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..213b5950fe516290d094cc7b0a8f53b793027cf2 |
--- /dev/null |
+++ b/components/enhanced_bookmarks/image_store_util.cc |
@@ -0,0 +1,33 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "components/enhanced_bookmarks/image_store_util.h" |
+ |
+#include "ui/gfx/image/image_skia.h" |
+#include "ui/gfx/image/image_util.h" |
+ |
+namespace { |
+const int kJpegEncodingQuality = 70; |
+} // namespace |
+ |
+namespace enhanced_bookmarks { |
+ |
+scoped_refptr<base::RefCountedMemory> BytesForImage(const gfx::Image& image) { |
+ DCHECK(image.AsImageSkia().image_reps().size() == 1); |
+ DCHECK(image.AsImageSkia().image_reps().begin()->scale() == 1.0f); |
+ |
+ std::vector<unsigned char> data; |
+ bool succeeded = |
+ gfx::JPEG1xEncodedDataFromImage(image, kJpegEncodingQuality, &data); |
+ |
+ if (!succeeded) |
+ return scoped_refptr<base::RefCountedMemory>(); |
+ |
+ return scoped_refptr<base::RefCountedMemory>(new base::RefCountedBytes(data)); |
+} |
+ |
+gfx::Image ImageForBytes(const scoped_refptr<base::RefCountedMemory>& bytes) { |
+ return gfx::ImageFrom1xJPEGEncodedData(bytes->front(), bytes->size()); |
+} |
+} |