Image commands now use optimizeTransparency instead of optimizeImageLayers
This commit is contained in:
parent
e7ffa23411
commit
3d85389638
27 changed files with 70 additions and 92 deletions
|
@ -14,7 +14,6 @@ class BlurWorker : public Napi::AsyncWorker {
|
||||||
void Execute() {
|
void Execute() {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -26,9 +25,9 @@ class BlurWorker : public Napi::AsyncWorker {
|
||||||
|
|
||||||
for_each(coalesced.begin(), coalesced.end(), magickImage(type));
|
for_each(coalesced.begin(), coalesced.end(), magickImage(type));
|
||||||
|
|
||||||
optimizeImageLayers(&result, coalesced.begin(), coalesced.end());
|
optimizeTransparency(coalesced.begin(), coalesced.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(coalesced.begin(), coalesced.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(coalesced.begin(), coalesced.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class BlurpleWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> blurpled;
|
list <Image> blurpled;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -23,12 +22,12 @@ class BlurpleWorker : public Napi::AsyncWorker {
|
||||||
image.threshold(49151.25);
|
image.threshold(49151.25);
|
||||||
image.levelColors("#7289DA", "white");
|
image.levelColors("#7289DA", "white");
|
||||||
image.magick(type);
|
image.magick(type);
|
||||||
|
image.animationDelay(delay == 0 ? image.animationDelay() : delay);
|
||||||
blurpled.push_back(image);
|
blurpled.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, blurpled.begin(), blurpled.end());
|
optimizeTransparency(blurpled.begin(), blurpled.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
writeImages(blurpled.begin(), blurpled.end(), &blob);
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -44,8 +44,8 @@ class CaptionWorker : public Napi::AsyncWorker {
|
||||||
captioned.push_back(appended);
|
captioned.push_back(appended);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, captioned.begin(), captioned.end());
|
optimizeTransparency(captioned.begin(), captioned.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(captioned.begin(), captioned.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class CaptionTwoWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> captioned;
|
list <Image> captioned;
|
||||||
list <Image> result;
|
|
||||||
Blob caption_blob;
|
Blob caption_blob;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
|
|
||||||
|
@ -43,8 +42,8 @@ class CaptionTwoWorker : public Napi::AsyncWorker {
|
||||||
captioned.push_back(appended);
|
captioned.push_back(appended);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, captioned.begin(), captioned.end());
|
optimizeTransparency(captioned.begin(), captioned.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(captioned.begin(), captioned.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class CircleWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> blurred;
|
list <Image> blurred;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -25,9 +24,9 @@ class CircleWorker : public Napi::AsyncWorker {
|
||||||
blurred.push_back(image);
|
blurred.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, blurred.begin(), blurred.end());
|
optimizeTransparency(blurred.begin(), blurred.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(blurred.begin(), blurred.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(blurred.begin(), blurred.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class CropWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -26,9 +25,9 @@ class CropWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class ExplodeWorker : public Napi::AsyncWorker {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> blurred;
|
list<Image> blurred;
|
||||||
list<Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -25,9 +24,9 @@ class ExplodeWorker : public Napi::AsyncWorker {
|
||||||
blurred.push_back(image);
|
blurred.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, blurred.begin(), blurred.end());
|
optimizeTransparency(blurred.begin(), blurred.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(blurred.begin(), blurred.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(blurred.begin(), blurred.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class FlagWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
watermark.read(overlay_path);
|
watermark.read(overlay_path);
|
||||||
|
@ -31,9 +30,9 @@ class FlagWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class FlipWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -25,9 +24,9 @@ class FlipWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class GamexplainWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
watermark.read("./assets/images/gamexplain.png");
|
watermark.read("./assets/images/gamexplain.png");
|
||||||
|
@ -30,9 +29,9 @@ class GamexplainWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class GlobeWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image distort;
|
Image distort;
|
||||||
Image overlay;
|
Image overlay;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
|
@ -43,13 +42,13 @@ class GlobeWorker : public Napi::AsyncWorker {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) {
|
if (delay != 0) {
|
||||||
for_each(result.begin(), result.end(), animationDelayImage(delay));
|
for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
} else if (type != "GIF") {
|
} else if (type != "GIF") {
|
||||||
for_each(result.begin(), result.end(), animationDelayImage(5));
|
for_each(mid.begin(), mid.end(), animationDelayImage(5));
|
||||||
}
|
}
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class InvertWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -27,9 +26,9 @@ class InvertWorker : public Napi::AsyncWorker {
|
||||||
// Magick::ChannelType(Magick::CompositeChannels ^ Magick::AlphaChannel)
|
// Magick::ChannelType(Magick::CompositeChannels ^ Magick::AlphaChannel)
|
||||||
for_each(mid.begin(), mid.end(), magickImage(type));
|
for_each(mid.begin(), mid.end(), magickImage(type));
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -30,6 +30,7 @@ class LeakWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(mid.begin(), mid.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ class MagikWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> blurred;
|
list <Image> blurred;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -27,9 +26,9 @@ class MagikWorker : public Napi::AsyncWorker {
|
||||||
blurred.push_back(image);
|
blurred.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, blurred.begin(), blurred.end());
|
optimizeTransparency(blurred.begin(), blurred.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(blurred.begin(), blurred.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(blurred.begin(), blurred.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -56,6 +56,7 @@ class MemeWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(mid.begin(), mid.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ class MirrorWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
MagickCore::GravityType gravity;
|
MagickCore::GravityType gravity;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
@ -53,8 +52,8 @@ class MirrorWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(final);
|
mid.push_back(final);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class SwirlWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -25,9 +24,9 @@ class SwirlWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class MotivateWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image top;
|
Image top;
|
||||||
Image bottom;
|
Image bottom;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
|
@ -60,8 +59,8 @@ class MotivateWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(final);
|
mid.push_back(final);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class ResizeWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> blurred;
|
list <Image> blurred;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -32,9 +31,9 @@ class ResizeWorker : public Napi::AsyncWorker {
|
||||||
blurred.push_back(image);
|
blurred.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, blurred.begin(), blurred.end());
|
optimizeTransparency(blurred.begin(), blurred.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(blurred.begin(), blurred.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(blurred.begin(), blurred.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -14,7 +14,6 @@ class ReverseWorker : public Napi::AsyncWorker {
|
||||||
void Execute() {
|
void Execute() {
|
||||||
list<Image> frames;
|
list<Image> frames;
|
||||||
list<Image> coalesced;
|
list<Image> coalesced;
|
||||||
list<Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -28,9 +27,9 @@ class ReverseWorker : public Napi::AsyncWorker {
|
||||||
|
|
||||||
for_each(coalesced.begin(), coalesced.end(), magickImage("GIF"));
|
for_each(coalesced.begin(), coalesced.end(), magickImage("GIF"));
|
||||||
|
|
||||||
optimizeImageLayers(&result, coalesced.begin(), coalesced.end());
|
optimizeTransparency(coalesced.begin(), coalesced.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(coalesced.begin(), coalesced.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(coalesced.begin(), coalesced.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class ScottWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
watermark.read("./assets/images/scott.png");
|
watermark.read("./assets/images/scott.png");
|
||||||
|
@ -35,8 +34,8 @@ class ScottWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(watermark_new);
|
mid.push_back(watermark_new);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class SpinWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -37,13 +36,13 @@ class SpinWorker : public Napi::AsyncWorker {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) {
|
if (delay != 0) {
|
||||||
for_each(result.begin(), result.end(), animationDelayImage(delay));
|
for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
} else if (type != "GIF") {
|
} else if (type != "GIF") {
|
||||||
for_each(result.begin(), result.end(), animationDelayImage(5));
|
for_each(mid.begin(), mid.end(), animationDelayImage(5));
|
||||||
}
|
}
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class TileWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -40,8 +39,8 @@ class TileWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(frame);
|
mid.push_back(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class TrumpWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
watermark.read("./assets/images/trump.png");
|
watermark.read("./assets/images/trump.png");
|
||||||
|
@ -35,8 +34,8 @@ class TrumpWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(watermark_new);
|
mid.push_back(watermark_new);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class WallWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
coalesceImages(&coalesced, frames.begin(), frames.end());
|
coalesceImages(&coalesced, frames.begin(), frames.end());
|
||||||
|
|
||||||
|
@ -32,9 +31,9 @@ class WallWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(image);
|
mid.push_back(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
if (delay != 0) for_each(result.begin(), result.end(), animationDelayImage(delay));
|
if (delay != 0) for_each(mid.begin(), mid.end(), animationDelayImage(delay));
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -16,7 +16,6 @@ class WatermarkWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
watermark.read(water_path);
|
watermark.read(water_path);
|
||||||
|
@ -51,8 +50,8 @@ class WatermarkWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(final);
|
mid.push_back(final);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
|
@ -15,7 +15,6 @@ class WdtWorker : public Napi::AsyncWorker {
|
||||||
list <Image> frames;
|
list <Image> frames;
|
||||||
list <Image> coalesced;
|
list <Image> coalesced;
|
||||||
list <Image> mid;
|
list <Image> mid;
|
||||||
list <Image> result;
|
|
||||||
Image watermark;
|
Image watermark;
|
||||||
readImages(&frames, in_path);
|
readImages(&frames, in_path);
|
||||||
watermark.read("./assets/images/whodidthis.png");
|
watermark.read("./assets/images/whodidthis.png");
|
||||||
|
@ -30,8 +29,8 @@ class WdtWorker : public Napi::AsyncWorker {
|
||||||
mid.push_back(watermark_new);
|
mid.push_back(watermark_new);
|
||||||
}
|
}
|
||||||
|
|
||||||
optimizeImageLayers(&result, mid.begin(), mid.end());
|
optimizeTransparency(mid.begin(), mid.end());
|
||||||
writeImages(result.begin(), result.end(), &blob);
|
writeImages(mid.begin(), mid.end(), &blob);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnOK() {
|
void OnOK() {
|
||||||
|
|
Loading…
Reference in a new issue