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