Recognize the "@2x" suffix of icon's filename.

This commit is contained in:
Cheng Zhao 2014-06-23 13:09:06 +08:00
parent 6cac69238c
commit 11e4111f25

View file

@ -8,12 +8,25 @@
#include "atom/common/native_mate_converters/file_path_converter.h"
#include "base/file_util.h"
#include "base/strings/string_util.h"
#include "ui/gfx/codec/jpeg_codec.h"
#include "ui/gfx/codec/png_codec.h"
#include "ui/gfx/image/image_skia.h"
namespace mate {
namespace {
ui::ScaleFactor GetScaleFactorFromFileName(const base::FilePath& path) {
std::string filename(path.BaseName().RemoveExtension().AsUTF8Unsafe());
if (EndsWith(filename, "@2x", true))
return ui::SCALE_FACTOR_200P;
else
return ui::SCALE_FACTOR_100P;
}
} // namespace
bool Converter<gfx::ImageSkia>::FromV8(v8::Isolate* isolate,
v8::Handle<v8::Value> val,
gfx::ImageSkia* out) {
@ -34,7 +47,8 @@ bool Converter<gfx::ImageSkia>::FromV8(v8::Isolate* isolate,
decoded.reset(gfx::JPEGCodec::Decode(data, size));
if (decoded) {
*out = gfx::ImageSkia::CreateFrom1xBitmap(*decoded.release());
*out = gfx::ImageSkia(gfx::ImageSkiaRep(*decoded.release(),
GetScaleFactorFromFileName(path)));
return true;
}
}