Add nativeImage.createFromBuffer()
This commit is contained in:
parent
faf40457c5
commit
c8738a88a4
2 changed files with 36 additions and 8 deletions
|
@ -65,15 +65,9 @@ float GetScaleFactorFromPath(const base::FilePath& path) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AddImageSkiaRep(gfx::ImageSkia* image,
|
bool AddImageSkiaRep(gfx::ImageSkia* image,
|
||||||
const base::FilePath& path,
|
const unsigned char* data,
|
||||||
|
size_t size,
|
||||||
double scale_factor) {
|
double scale_factor) {
|
||||||
std::string file_contents;
|
|
||||||
if (!base::ReadFileToString(path, &file_contents))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
const unsigned char* data =
|
|
||||||
reinterpret_cast<const unsigned char*>(file_contents.data());
|
|
||||||
size_t size = file_contents.size();
|
|
||||||
scoped_ptr<SkBitmap> decoded(new SkBitmap());
|
scoped_ptr<SkBitmap> decoded(new SkBitmap());
|
||||||
|
|
||||||
// Try PNG first.
|
// Try PNG first.
|
||||||
|
@ -88,6 +82,19 @@ bool AddImageSkiaRep(gfx::ImageSkia* image,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AddImageSkiaRep(gfx::ImageSkia* image,
|
||||||
|
const base::FilePath& path,
|
||||||
|
double scale_factor) {
|
||||||
|
std::string file_contents;
|
||||||
|
if (!base::ReadFileToString(path, &file_contents))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const unsigned char* data =
|
||||||
|
reinterpret_cast<const unsigned char*>(file_contents.data());
|
||||||
|
size_t size = file_contents.size();
|
||||||
|
return AddImageSkiaRep(image, data, size, scale_factor);
|
||||||
|
}
|
||||||
|
|
||||||
bool PopulateImageSkiaRepsFromPath(gfx::ImageSkia* image,
|
bool PopulateImageSkiaRepsFromPath(gfx::ImageSkia* image,
|
||||||
const base::FilePath& path) {
|
const base::FilePath& path) {
|
||||||
bool succeed = false;
|
bool succeed = false;
|
||||||
|
@ -209,6 +216,20 @@ mate::Handle<NativeImage> NativeImage::CreateFromPath(
|
||||||
return Create(isolate, image);
|
return Create(isolate, image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
mate::Handle<NativeImage> NativeImage::CreateFromBuffer(
|
||||||
|
mate::Arguments* args, v8::Handle<v8::Value> buffer) {
|
||||||
|
double scale_factor = 1.;
|
||||||
|
args->GetNext(&scale_factor);
|
||||||
|
|
||||||
|
gfx::ImageSkia image_skia;
|
||||||
|
AddImageSkiaRep(&image_skia,
|
||||||
|
reinterpret_cast<unsigned char*>(node::Buffer::Data(buffer)),
|
||||||
|
node::Buffer::Length(buffer),
|
||||||
|
scale_factor);
|
||||||
|
return Create(args->isolate(), gfx::Image(image_skia));
|
||||||
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
mate::Handle<NativeImage> NativeImage::CreateFromDataURL(
|
mate::Handle<NativeImage> NativeImage::CreateFromDataURL(
|
||||||
v8::Isolate* isolate, const GURL& url) {
|
v8::Isolate* isolate, const GURL& url) {
|
||||||
|
@ -235,6 +256,7 @@ void Initialize(v8::Handle<v8::Object> exports, v8::Handle<v8::Value> unused,
|
||||||
mate::Dictionary dict(context->GetIsolate(), exports);
|
mate::Dictionary dict(context->GetIsolate(), exports);
|
||||||
dict.SetMethod("createEmpty", &atom::api::NativeImage::CreateEmpty);
|
dict.SetMethod("createEmpty", &atom::api::NativeImage::CreateEmpty);
|
||||||
dict.SetMethod("createFromPath", &atom::api::NativeImage::CreateFromPath);
|
dict.SetMethod("createFromPath", &atom::api::NativeImage::CreateFromPath);
|
||||||
|
dict.SetMethod("createFromBuffer", &atom::api::NativeImage::CreateFromBuffer);
|
||||||
dict.SetMethod("createFromDataUrl",
|
dict.SetMethod("createFromDataUrl",
|
||||||
&atom::api::NativeImage::CreateFromDataURL);
|
&atom::api::NativeImage::CreateFromDataURL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,10 @@ namespace gfx {
|
||||||
class Size;
|
class Size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace mate {
|
||||||
|
class Arguments;
|
||||||
|
}
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
namespace api {
|
namespace api {
|
||||||
|
@ -36,6 +40,8 @@ class NativeImage : public mate::Wrappable {
|
||||||
v8::Isolate* isolate, const char* buffer, size_t length);
|
v8::Isolate* isolate, const char* buffer, size_t length);
|
||||||
static mate::Handle<NativeImage> CreateFromPath(
|
static mate::Handle<NativeImage> CreateFromPath(
|
||||||
v8::Isolate* isolate, const base::FilePath& path);
|
v8::Isolate* isolate, const base::FilePath& path);
|
||||||
|
static mate::Handle<NativeImage> CreateFromBuffer(
|
||||||
|
mate::Arguments* args, v8::Handle<v8::Value> buffer);
|
||||||
static mate::Handle<NativeImage> CreateFromDataURL(
|
static mate::Handle<NativeImage> CreateFromDataURL(
|
||||||
v8::Isolate* isolate, const GURL& url);
|
v8::Isolate* isolate, const GURL& url);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue