diff --git a/wip/Tune-canvas-randomisation.patch b/wip/Tune-canvas-randomisation.patch new file mode 100644 index 00000000..425a1cab --- /dev/null +++ b/wip/Tune-canvas-randomisation.patch @@ -0,0 +1,64 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Mon, 18 Jun 2018 09:03:52 +0200 +Subject: Tune canvas randomisation + +Randomise RGB for each pixel, change value up to to 8% +--- + .../blink/renderer/core/offscreencanvas/offscreen_canvas.cc | 1 - + .../modules/canvas/canvas2d/base_rendering_context_2d.cc | 2 +- + .../blink/renderer/platform/graphics/image_data_buffer.cc | 12 ++++++------ + 3 files changed, 7 insertions(+), 8 deletions(-) + +diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc +--- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc ++++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc +@@ -403,7 +403,6 @@ ScriptPromise OffscreenCanvas::convertToBlob(ScriptState* script_state, + CanvasAsyncBlobCreator* async_creator = CanvasAsyncBlobCreator::Create( + snapshot, encoding_mime_type, start_time, + ExecutionContext::From(script_state), resolver); +- + async_creator->ScheduleAsyncBlobCreation(options.quality()); + return resolver->Promise(); + } else { +diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc ++++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +@@ -1621,7 +1621,7 @@ ImageData* BaseRenderingContext2D::getImageData( + scoped_refptr snapshot = GetImage(kPreferNoAcceleration); + + //TODO: calculate some random value and use it to shuffle pixel data in 'snapshot' +- // it should StaticBitmapImage somehow ++ // it should be a StaticBitmapImage somehow + + if (!StaticBitmapImage::ConvertToArrayBufferContents( + snapshot, contents, image_data_rect, color_params, IsAccelerated())) { +diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc +--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc ++++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc +@@ -134,17 +134,17 @@ void ImageDataBuffer::shuffleSubchannelColorData() const { + // second random number (for y/height) + double shuffleY = base::RandDouble(); + +- // calculate amounts to change per component +- double shuffleR = shuffleX - 0.5, shuffleG = shuffleY - 0.5, shuffleB = (shuffleX + shuffleY)/2 - 0.5; +- shuffleR *= 0.03; +- shuffleG *= 0.03; +- shuffleB *= 0.03; +- + auto colorType = pixmap_.colorType(); + + // calculate random coordinates using bisection + auto currentW = w, currentH = h; + for(;pixels >= 0; pixels--) { ++ // calculate amounts to change per RGB component, +/- 4% max ++ double shuffleR = base::RandDouble() - 0.5, shuffleG = base::RandDouble() - 0.5, shuffleB = base::RandDouble() - 0.5; ++ shuffleR *= 0.08; ++ shuffleG *= 0.08; ++ shuffleB *= 0.08; ++ + int x = currentW * shuffleX, y = currentH * shuffleY; + + // manipulate pixel data to slightly change the R, G, B components +-- +2.7.4 +