logo
down
shadow

Canvas globalCompositeOperation is not working correctly


Canvas globalCompositeOperation is not working correctly

Content Index :

Canvas globalCompositeOperation is not working correctly
Tag : development , By : Adil
Date : November 24 2020, 05:44 AM


Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

HTML5 Canvas: globalCompositeOperation (eraser)


Tag : javascript , By : browe
Date : March 29 2020, 07:55 AM
should help you out Yes you can erase using globalCompositeOperation as described here. Just set it to "copy" and use e.g. strokeStyle = "rgba(0,0,0,0)" and that will clear the canvas in the stroke.
Update: thanks for pointing out this doesn't work now @will-huang. You should as mentioned have globalCompositeOperation set to destination-out and strokeStyle set to rgba(0,0,0,1). (Actually you can have any RGB values, just you need the alpha set to 1.0 to fully erase the contents of the stroke.)

Canvas 2D globalCompositeOperation (lighter)


Tag : javascript , By : CodeOfficer
Date : March 29 2020, 07:55 AM
Does that help Spelling error on lighter FTL :O http://jsbin.com/uvaje4/5/

Why can't drag a rectangle on canvas using the XOR globalCompositeOperation?


Tag : javascript , By : kakashi_
Date : March 29 2020, 07:55 AM
Hope this helps You can create a hidden image containing the original canvas image (before drag) and then redraw using the saved image, so there is only one draw operation on each move.
//canvas = your canvas element
//Save the image before drag
var img = new Image();
img.src = canvas.toDataURL();

//On drag, redraw the saved image
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0);
//Store the rectangle's coordinates
var rectCoords = {x: 0, y: 0};
//The rectangle's size
var rectSize = {width: 50, height: 50};
//Create a canvas element
var savedCanvas = document.createElement("canvas");
savedCanvas.width = canvas.width + rectSize.width;
savedCanvas.height = canvas.height + rectSize.height;
var ctxSaved = savedCanvas.getContext("2d");
//Draw the entire canvas onto the saved canvas
ctxSaved.drawImage(canvas, 0, 0);
//Store your coordinates for the redraw
rectCoords.x = "Your coordinate";
rectCoords.y = "Your coordinate";
//Draw original image only in the area where the rectangle was drawn
ctx.drawImage(savedCanvas, rectCoords.x, rectCoords.y, rectSize.width, rectSize.height,
rectCoords.x, rectCoords.y, rectSize.width, rectSize.height);
//Store your coordinates for the next redraw
rectCoords.x = "Your coordinate";
rectCoords.y = "Your coordinate";

canvas shadow with globalCompositeOperation[ destination-out ]


Tag : javascript , By : nabbed
Date : March 29 2020, 07:55 AM
this will help ..Hi there, After a long gap,i again got the opportunity to work with JavaScript and canvas. , Here's a dropShadow function that has the desired effect.
$('.bg').one("load", function() {

  var canvas = document.getElementById('canva'),
    context = canvas.getContext('2d'),
    img1 = $('.bg')[0],
    img2 = $('.bgover')[0];

  context.drawImage(img1, 0, 0);
  context.save();
  context.globalCompositeOperation = 'destination-out';
  context.drawImage(img2, 10, 10);
  context.restore();

  dropShadow(canvas, "red", 5, 2, 2);
  
});

// This function draws the image to left of canvas
// leaving only the shadow then draws the shadow in the
// empty space.
function dropShadow(can, color, blur, offsetX, offsetY) {
  var s_can = document.createElement('canvas');
  var s_ctx = s_can.getContext('2d');
  var ctx = can.getContext('2d');
  var w = can.width;
  var h = can.height;
  s_can.width = w;
  s_can.height = h;
  s_ctx.shadowBlur = blur;
  s_ctx.shadowColor = color;
  s_ctx.shadowOffsetX = w;
  s_ctx.shadowOffsetY = 0;
  s_ctx.drawImage(can, 0, 0, w, h,-w,0,w,h);
  
  ctx.save();
  ctx.globalCompositeOperation = 'destination-over';
  ctx.drawImage(s_can, offsetX, offsetY);
  ctx.restore();
}
body {
  background: #E7FF00
}
.bg {
  background: url() center;
  width: 300px;
  height: 300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<img class='bg' src="http://www.qdtricks.org/wp-content/uploads/2015/02/hd-wallpapers-for-mobile.jpg" style='display:none'>

<img class='bgover' src="http://spotremoval.coit.com/sites/spotremoval.coit.com/files/styles/stain_sidebar/public/Feces%20Stain%20Removal%20-%20SPOT%20REMOVAL%20GUIDE.png?itok=j6f96IHQ" style='display:none'>


<canvas id="canva" width="400" height="400" style="position:absolute;left:0;top:0"></canvas>

How correctly apply globalCompositeOperation on canvas's elements?


Tag : javascript , By : Dré
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • How to populate datasource for listview using api response in react native?
  • Why does gmail API when using history.list method send message ids without the field what action has been preformed on t
  • How to run an append query in ms access vba as part of a transaction
  • Wrong dates shown in Jekyll-based blog
  • How to concatenate two document lists in a webMethods flow service?
  • How to properly set up a site map addition in a customization project
  • IBM Content Collector error calling external Web Service
  • Is (0*1*)* equal to (0 | 1)*?
  • How do I configure phpMyAdmin to start with a blank sql query from the SQL tab?
  • "Objects are not valid as a React child" Redux error when conditionally connecting a component?
  • Displacy results are not showing
  • Strapi / Graphql. What am i doing wrong?
  • How to add Search bar for django template?
  • lookup in presto using single column against a range in lookup table
  • How can you stop videos being stolen on website?
  • Can't code substitution happen in Hybrid Flow?
  • Removed widget remains on parent
  • setup saga middleware with redux-starter-kit's configureStore()
  • How to get cookies from response of scrapy splash
  • I need to do a firebase stream and not a Http Get
  • Unable to compile node-runtime
  • SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause'
  • How to extract only the number from a variable
  • disable linter in DAML studio
  • RxJS: How to set exhaustMap concurrent?
  • How to remove perforce (p4) on Ubuntu
  • How do they know mean and std, the input value of transforms.Normalize
  • Why this type is not an Interface?
  • SugarCRM Rest API set_relationship between Contacts and Documents
  • Jira dashboard organization
  • Web worker importScripts fails to place script variables in global scope
  • Always errors - The "path" argument must be one of type string, Buffer, or URL. Received type undefined
  • How to create an observable of a stream of infinite items
  • Not efficiently to use multi-Core CPU for training Doc2vec with gensim
  • webGL gl_Position value saving outside shaders
  • Is it okay for a resolver to have side effects besides resolving the type?
  • Move 32bit register into a 8 bit register
  • Is there a way to update, not overwrite, worker_env for a Dask YarnCluster within a script?
  • Lotus Notes Deployment
  • How Do I Add Active Directory To APIM Using Terraform?
  • How to get the old parameter values in Blazor OnParameterSet?
  • How to debug "ERROR: Could not reach the worker node."?
  • How chain indefinite amount of flatMap operators in Reactor?
  • extract dates and times from string in Redshift
  • How do I make a column of 3 cards match in height in bootstrapVue?
  • how to replace missing values from another column in PySpark?
  • only read last line of text file (C++ Builder)
  • Snakemake --forceall --dag results in mysterius Error: <stdin>: syntax error in line 1 near 'File' from Graphvis
  • How Can I Remove Demo Products From APIM Created With Terraform?
  • How to avoid cloning a big integer in rust
  • Break a row of words into word groups in Hive
  • How can I add a path variable to existing files in an Installshield project converted from MSI
  • Certain languages are not available in postman; is there a way to enable it?
  • Concatenation step of U-Net for unequal number of channels
  • HL Fabric - states, transactions but varied keys
  • How to handle "flood wait" errors when using telethon.sync?
  • Any way to make closure which takes a destructured array?
  • What is the Difference between @PeculiarVentures 's `webcrypto` and `node-webcrypto-ossl`?
  • DWG Sheet Combination failing on AutoDesk Forge
  • karate.log(args) on afterScenario hook is not embedded on surefire json file
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com