[文章]HarmonyOS应用开发-绘制图像实现

阅读量0
1
2

说明:
从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
使用OffscreenCanvasRenderingContext2D在offscreen canvas上进行绘制,绘制对象可以是矩形、文本、图片等
属性:

示例代码:
Hml代码
  1. <div class="container">
  2.     <canvas ref="canvasId" style="width: 500px; height: 500px; background-color: #ffff00;"></canvas>
  3. </div>
复制代码

Css代码:
  1. .container {
  2.     flex-direction: column;
  3.     justify-content: center;
  4.     align-items: center;
  5.     width: 100%;
  6.     height: 100%;
  7. }
复制代码

Js代码:
  1. export default {
  2.     onShow(){
  3.         var ctx = this.$refs.canvasId.getContext('2d');
  4.         var offscreen = new OffscreenCanvas(360, 500);
  5.         var offCanvas2 = offscreen.getContext("2d");
  6.         var img = new Image();
  7.         img.src = 'common/images/bg-tv.jpg';
  8.         offCanvas2.drawImage(img, 0, 0, 100, 100);
  9.         offCanvas2.filter = 'blur(5px)';
  10.         offCanvas2.drawImage(img, 100, 0, 100, 100);

  11.         offCanvas2.filter = 'grayscale(50%)';
  12.         offCanvas2.drawImage(img, 200, 0, 100, 100);

  13.         offCanvas2.filter = 'hue-rotate(90deg)';
  14.         offCanvas2.drawImage(img, 0, 100, 100, 100);

  15.         offCanvas2.filter = 'invert(100%)';
  16.         offCanvas2.drawImage(img, 100, 100, 100, 100);

  17.         offCanvas2.filter = 'drop-shadow(8px 8px 10px green)';
  18.         offCanvas2.drawImage(img, 200, 100, 100, 100);

  19.         offCanvas2.filter = 'brightness(0.4)';
  20.         offCanvas2.drawImage(img, 0, 200, 100, 100);

  21.         offCanvas2.filter = 'opacity(25%)';
  22.         offCanvas2.drawImage(img, 100, 200, 100, 100);

  23.         offCanvas2.filter = 'saturate(30%)';
  24.         offCanvas2.drawImage(img, 200, 200, 100, 100);

  25.         offCanvas2.filter = 'sepia(60%)';
  26.         offCanvas2.drawImage(img, 0, 300, 100, 100);

  27.         offCanvas2.filter = 'contrast(200%)';
  28.         offCanvas2.drawImage(img, 100, 300, 100, 100);
  29.         var bitmap = offscreen.transferToImageBitmap();
  30.         ctx.transferFromImageBitmap(bitmap);
  31.     }
  32. }

复制代码

实例效果:
图片1.png
附件:

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友