Pass an image buffer into the native functions instead of a URL
This commit is contained in:
parent
666f9b9912
commit
61758fa3bb
33 changed files with 81 additions and 75 deletions
|
@ -11,7 +11,7 @@ Napi::Value Blur(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool sharp = obj.Get("sharp").As<Napi::Boolean>().Value();
|
bool sharp = obj.Get("sharp").As<Napi::Boolean>().Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Blur(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
if (sharp) {
|
if (sharp) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Blurple(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Blurple(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> blurpled;
|
list<Image> blurpled;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Caption(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string caption = obj.Get("caption").As<Napi::String>().Utf8Value();
|
string caption = obj.Get("caption").As<Napi::String>().Utf8Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Caption(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> captioned;
|
list<Image> captioned;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
|
|
||||||
size_t width = frames.front().baseColumns();
|
size_t width = frames.front().baseColumns();
|
||||||
string query(to_string(width - ((width / 25) * 2)) + "x");
|
string query(to_string(width - ((width / 25) * 2)) + "x");
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value CaptionTwo(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string caption = obj.Get("caption").As<Napi::String>().Utf8Value();
|
string caption = obj.Get("caption").As<Napi::String>().Utf8Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -23,7 +23,7 @@ Napi::Value CaptionTwo(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> captioned;
|
list<Image> captioned;
|
||||||
Blob caption_blob;
|
Blob caption_blob;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
|
|
||||||
size_t width = frames.front().baseColumns();
|
size_t width = frames.front().baseColumns();
|
||||||
string query(to_string(width - ((width / 25) * 2)) + "x");
|
string query(to_string(width - ((width / 25) * 2)) + "x");
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Circle(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Circle(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> blurred;
|
list<Image> blurred;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Crop(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Crop(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Explode(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
int amount = obj.Get("amount").As<Napi::Number>().Int32Value();
|
int amount = obj.Get("amount").As<Napi::Number>().Int32Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Explode(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> blurred;
|
list<Image> blurred;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Flag(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string overlay = obj.Get("overlay").As<Napi::String>().Utf8Value();
|
string overlay = obj.Get("overlay").As<Napi::String>().Utf8Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -23,7 +23,7 @@ Napi::Value Flag(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read(overlay);
|
watermark.read(overlay);
|
||||||
watermark.alphaChannel(Magick::SetAlphaChannel);
|
watermark.alphaChannel(Magick::SetAlphaChannel);
|
||||||
watermark.evaluate(Magick::AlphaChannel, Magick::MultiplyEvaluateOperator,
|
watermark.evaluate(Magick::AlphaChannel, Magick::MultiplyEvaluateOperator,
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Flip(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool flop =
|
bool flop =
|
||||||
obj.Has("flop") ? obj.Get("flop").As<Napi::Boolean>().Value() : false;
|
obj.Has("flop") ? obj.Get("flop").As<Napi::Boolean>().Value() : false;
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
|
@ -23,7 +23,7 @@ Napi::Value Flip(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Freeze(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool loop =
|
bool loop =
|
||||||
obj.Has("loop") ? obj.Get("loop").As<Napi::Boolean>().Value() : false;
|
obj.Has("loop") ? obj.Get("loop").As<Napi::Boolean>().Value() : false;
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
|
@ -24,7 +24,7 @@ Napi::Value Freeze(const Napi::CallbackInfo &info) {
|
||||||
Blob blob;
|
Blob blob;
|
||||||
|
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
|
|
||||||
if (frame >= 0 && !loop) {
|
if (frame >= 0 && !loop) {
|
||||||
size_t frameSize = frames.size();
|
size_t frameSize = frames.size();
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Gamexplain(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Gamexplain(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read("./assets/images/gamexplain.png");
|
watermark.read("./assets/images/gamexplain.png");
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Globe(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -23,7 +23,7 @@ Napi::Value Globe(const Napi::CallbackInfo &info) {
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image distort;
|
Image distort;
|
||||||
Image overlay;
|
Image overlay;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
distort.read("./assets/images/spheremap.png");
|
distort.read("./assets/images/spheremap.png");
|
||||||
overlay.read("./assets/images/sphere_overlay.png");
|
overlay.read("./assets/images/sphere_overlay.png");
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Invert(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Invert(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for_each(coalesced.begin(), coalesced.end(), negateImage());
|
for_each(coalesced.begin(), coalesced.end(), negateImage());
|
||||||
|
|
|
@ -11,12 +11,12 @@ Napi::Value Jpeg(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
|
|
||||||
Blob blob;
|
Blob blob;
|
||||||
|
|
||||||
Image image;
|
Image image;
|
||||||
image.read(path);
|
image.read(Blob(data.Data(), data.Length()));
|
||||||
image.quality(1);
|
image.quality(1);
|
||||||
image.magick("JPEG");
|
image.magick("JPEG");
|
||||||
image.write(&blob);
|
image.write(&blob);
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Leak(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Leak(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read("./assets/images/leak.png");
|
watermark.read("./assets/images/leak.png");
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Magik(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Magik(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> blurred;
|
list<Image> blurred;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Meme(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string top = obj.Get("top").As<Napi::String>().Utf8Value();
|
string top = obj.Get("top").As<Napi::String>().Utf8Value();
|
||||||
string bottom = obj.Get("bottom").As<Napi::String>().Utf8Value();
|
string bottom = obj.Get("bottom").As<Napi::String>().Utf8Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
|
@ -25,7 +25,7 @@ Napi::Value Meme(const Napi::CallbackInfo &info) {
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image top_text;
|
Image top_text;
|
||||||
Image bottom_text;
|
Image bottom_text;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
for_each(coalesced.begin(), coalesced.end(),
|
for_each(coalesced.begin(), coalesced.end(),
|
||||||
scaleImage(Geometry(600, 600)));
|
scaleImage(Geometry(600, 600)));
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Mirror(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool vertical = obj.Has("vertical")
|
bool vertical = obj.Has("vertical")
|
||||||
? obj.Get("vertical").As<Napi::Boolean>().Value()
|
? obj.Get("vertical").As<Napi::Boolean>().Value()
|
||||||
: false;
|
: false;
|
||||||
|
@ -27,7 +27,7 @@ Napi::Value Mirror(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
MagickCore::GravityType gravity;
|
MagickCore::GravityType gravity;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
if (vertical && first) {
|
if (vertical && first) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Motivate(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string top_text = obj.Get("top").As<Napi::String>().Utf8Value();
|
string top_text = obj.Get("top").As<Napi::String>().Utf8Value();
|
||||||
string bottom_text = obj.Get("bottom").As<Napi::String>().Utf8Value();
|
string bottom_text = obj.Get("bottom").As<Napi::String>().Utf8Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
|
@ -25,7 +25,7 @@ Napi::Value Motivate(const Napi::CallbackInfo &info) {
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image top;
|
Image top;
|
||||||
Image bottom;
|
Image bottom;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
top.size(Geometry("600"));
|
top.size(Geometry("600"));
|
||||||
|
|
|
@ -10,7 +10,7 @@ Napi::Value Reddit(const Napi::CallbackInfo &info) {
|
||||||
Napi::Env env = info.Env();
|
Napi::Env env = info.Env();
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string text = obj.Get("caption").As<Napi::String>().Utf8Value();
|
string text = obj.Get("caption").As<Napi::String>().Utf8Value();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -23,7 +23,7 @@ Napi::Value Reddit(const Napi::CallbackInfo &info) {
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
Image text_image;
|
Image text_image;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
|
|
||||||
watermark.read("./assets/images/reddit.png");
|
watermark.read("./assets/images/reddit.png");
|
||||||
text_image.textGravity(Magick::WestGravity);
|
text_image.textGravity(Magick::WestGravity);
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Resize(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool stretch = obj.Has("stretch")
|
bool stretch = obj.Has("stretch")
|
||||||
? obj.Get("stretch").As<Napi::Boolean>().Value()
|
? obj.Get("stretch").As<Napi::Boolean>().Value()
|
||||||
: false;
|
: false;
|
||||||
|
@ -26,7 +26,7 @@ Napi::Value Resize(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> blurred;
|
list<Image> blurred;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Reverse(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool soos =
|
bool soos =
|
||||||
obj.Has("soos") ? obj.Get("soos").As<Napi::Boolean>().Value() : false;
|
obj.Has("soos") ? obj.Get("soos").As<Napi::Boolean>().Value() : false;
|
||||||
int delay =
|
int delay =
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Reverse(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
if (soos) {
|
if (soos) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Scott(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Scott(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read("./assets/images/scott.png");
|
watermark.read("./assets/images/scott.png");
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Speed(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
bool slow =
|
bool slow =
|
||||||
obj.Has("slow") ? obj.Get("slow").As<Napi::Boolean>().Value() : false;
|
obj.Has("slow") ? obj.Get("slow").As<Napi::Boolean>().Value() : false;
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
|
@ -23,7 +23,7 @@ Napi::Value Speed(const Napi::CallbackInfo &info) {
|
||||||
Blob blob;
|
Blob blob;
|
||||||
|
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
|
|
||||||
// if passed a delay, use that. otherwise use the average frame delay.
|
// if passed a delay, use that. otherwise use the average frame delay.
|
||||||
if (delay == 0) {
|
if (delay == 0) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Spin(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Spin(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
if (type != "gif") {
|
if (type != "gif") {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Swirl(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Swirl(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Tile(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Tile(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Trump(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Trump(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read("./assets/images/trump.png");
|
watermark.read("./assets/images/trump.png");
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ Napi::Value Uncaption(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -44,7 +44,7 @@ Napi::Value Uncaption(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
Image firstImage = coalesced.front();
|
Image firstImage = coalesced.front();
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Wall(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -21,7 +21,7 @@ Napi::Value Wall(const Napi::CallbackInfo &info) {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
for (Image &image : coalesced) {
|
for (Image &image : coalesced) {
|
||||||
|
|
|
@ -12,7 +12,7 @@ Napi::Value Watermark(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string water = obj.Get("water").As<Napi::String>().Utf8Value();
|
string water = obj.Get("water").As<Napi::String>().Utf8Value();
|
||||||
int gravity = obj.Get("gravity").As<Napi::Number>().Int32Value();
|
int gravity = obj.Get("gravity").As<Napi::Number>().Int32Value();
|
||||||
bool resize = obj.Has("resize")
|
bool resize = obj.Has("resize")
|
||||||
|
@ -32,7 +32,7 @@ Napi::Value Watermark(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read(water);
|
watermark.read(water);
|
||||||
if (resize && append) {
|
if (resize && append) {
|
||||||
string query(to_string(frames.front().baseColumns()) + "x");
|
string query(to_string(frames.front().baseColumns()) + "x");
|
||||||
|
|
|
@ -11,7 +11,7 @@ Napi::Value Wdt(const Napi::CallbackInfo &info) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Napi::Object obj = info[0].As<Napi::Object>();
|
Napi::Object obj = info[0].As<Napi::Object>();
|
||||||
string path = obj.Get("path").As<Napi::String>().Utf8Value();
|
Napi::Buffer<char> data = obj.Get("data").As<Napi::Buffer<char>>();
|
||||||
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
string type = obj.Get("type").As<Napi::String>().Utf8Value();
|
||||||
int delay =
|
int delay =
|
||||||
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
obj.Has("delay") ? obj.Get("delay").As<Napi::Number>().Int32Value() : 0;
|
||||||
|
@ -22,7 +22,7 @@ Napi::Value Wdt(const Napi::CallbackInfo &info) {
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> mid;
|
list<Image> mid;
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, path);
|
readImages(&frames, Blob(data.Data(), data.Length()));
|
||||||
watermark.read("./assets/images/whodidthis.png");
|
watermark.read("./assets/images/whodidthis.png");
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,24 @@
|
||||||
const magick = require("../build/Release/image.node");
|
const magick = require("../build/Release/image.node");
|
||||||
const { isMainThread, parentPort, workerData } = require("worker_threads");
|
const { isMainThread, parentPort, workerData } = require("worker_threads");
|
||||||
|
const fetch = require("node-fetch");
|
||||||
|
|
||||||
exports.run = object => {
|
exports.run = object => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
// If the image has a path, it must also have a type
|
// If the image has a path, it must also have a type
|
||||||
|
let promise = new Promise((resolveTest) => { resolveTest(); }); // no-op
|
||||||
if (object.path) {
|
if (object.path) {
|
||||||
if (object.type !== "image/gif" && object.onlyGIF) resolve({
|
if (object.type !== "image/gif" && object.onlyGIF) resolve({
|
||||||
buffer: Buffer.alloc(0),
|
buffer: Buffer.alloc(0),
|
||||||
fileExtension: "nogif"
|
fileExtension: "nogif"
|
||||||
});
|
});
|
||||||
|
promise = fetch(object.path).then(res => res.buffer());
|
||||||
}
|
}
|
||||||
// Convert from a MIME type (e.g. "image/png") to something ImageMagick understands (e.g. "png").
|
// Convert from a MIME type (e.g. "image/png") to something ImageMagick understands (e.g. "png").
|
||||||
// Don't set `type` directly on the object we are passed as it will be read afterwards.
|
// Don't set `type` directly on the object we are passed as it will be read afterwards.
|
||||||
// If no image type is given (say, the command generates its own image), make it a PNG.
|
// If no image type is given (say, the command generates its own image), make it a PNG.
|
||||||
const fileExtension = object.type ? object.type.split("/")[1] : "png";
|
const fileExtension = object.type ? object.type.split("/")[1] : "png";
|
||||||
|
promise.then(buf => {
|
||||||
|
object.data = buf;
|
||||||
const objectWithFixedType = Object.assign({}, object, {type: fileExtension});
|
const objectWithFixedType = Object.assign({}, object, {type: fileExtension});
|
||||||
try {
|
try {
|
||||||
const result = magick[object.cmd](objectWithFixedType);
|
const result = magick[object.cmd](objectWithFixedType);
|
||||||
|
@ -26,6 +31,7 @@ exports.run = object => {
|
||||||
reject(e);
|
reject(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isMainThread) {
|
if (!isMainThread) {
|
||||||
|
|
Loading…
Reference in a new issue