65 lines
3.1 KiB
Diff
65 lines
3.1 KiB
Diff
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<StaticBitmapImage> 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
|
|
|