27.Flutter:成为Canvas绘制大师(三)

作者: CoorChice | 来源:发表于2019-03-24 21:03 被阅读69次

image

目录传送门:《Flutter快速上手指南》先导篇

绘制图片drawImage()

绘制图片。

🌰 e.g.:

canvas.drawImage(background, Offset(100, 100), paint);

🖼 效果:

image

很简单,不是吗?

⚠️ 需要注意的是,Offset 被用来设置图片的 左上角 相对于绘制区域的 左上角 的偏移量。

你从上面的效果图中也能看到它的作用。

绘制图片drawImageRect()

该绘制函数,可以把图片上的一个矩形部分,以填充至满的形式绘制到另一个矩形中。

不理解?

看个例子也许就清晰了。

🌰 e.g.:

Rect dstRect = Rect.fromLTWH(0, 0, size.width, size.height);
canvas.drawImageRect(background, Rect.fromLTWH(0, 0, 100, 100), dstRect, paint);

🖼 效果:

image

在这个例子中,将图片的左上角区域,拉伸填充到整个屏幕。

再看一个例子🌰,帮助加深理解。

🌰 e.g.:

Size imgSize = Size(
    background.width.toDouble(), background.height.toDouble());
Rect dstRect = Rect.fromLTWH(0, 0, size.width, size.height);
// 根据适配模式,计算适合的缩放尺寸
FittedSizes fittedSizes = applyBoxFit(
    BoxFit.cover, imgSize, dstRect.size);
// 获得一个图片区域中,指定大小的,居中位置处的 Rect
Rect inputRect = Alignment.center.inscribe(
    fittedSizes.source, Offset.zero & imgSize);
// 获得一个绘制区域内,指定大小的,居中位置处的 Rect
Rect outputRect = Alignment.center.inscribe(
    fittedSizes.destination, dstRect);
canvas.drawImageRect(background, inputRect, outputRect, paint);

🖼 效果:

image

上面的例子中,基于图片的中心位置,选取了适合部分,将填充至整个屏幕。

例子通过 applyBoxFit() 函数,根据适配模式计算了对应的缩放尺寸,其中 BoxFit 有多种模式,具体可查看官方的说明:BoxFit API

如何找到我?

传送门:CoorChice 的主页

传送门:CoorChice 的 Github

相关文章

  • 27.Flutter:成为Canvas绘制大师(三)

    目录传送门:《Flutter快速上手指南》先导篇 绘制图片drawImage() 绘制图片。 ? e.g.: ? ...

  • 26.Flutter:成为Canvas绘制大师(二)

    目录传送门:《Flutter快速上手指南》先导篇 接着上一篇 《Flutter:成为Canvas绘制大师(一)》,...

  • canvas绘制仪表盘

    效果图 html添加canvas js获取canvas 定义方法绘制圆环 绘制刻度线 绘制文字 绘制圆 绘制三角形...

  • canvas基础知识总结

    一、Canvas-绘制文字 1、属性 二、canvas-设置阴影 三、canvas-创建路径-绘制矩形和圆形 1、...

  • 28.Flutter:成为Canvas绘制大师(四)

    目录传送门:《Flutter快速上手指南》先导篇 通过前面 3 篇: 25.Flutter:成为Canvas绘制大...

  • canvas 图片压缩

    描述 使用 Canvas 元素来绘制图形,需要三步 获取 canvas 对象var canvas = docume...

  • 学习canvas

    HTML中的元素canvas只支持一种原生的图形绘制:矩形。canvas提供了三种方法绘制矩形 fillRect(...

  • 浅析HTML5的Canvas——案例绘制

    1. Canvas绘制五环 2.Canvas绘制饼状图以及绘制文字 3. Canvas绘制一堆不断变大变小的随机移...

  • 四、Android绘制知识总结(画布篇)

    Canvas(画布),绘制的载体,通过Paint(画笔)可以在上面绘制所有你想绘制的图案。 1、Canvas绘制A...

  • canvas

    canvas canvas绘制 获取元素var canvas = document.getelementbyid(...

网友评论

    本文标题:27.Flutter:成为Canvas绘制大师(三)

    本文链接:https://www.haomeiwen.com/subject/zhjpvqtx.html