使用drawBitmapMesh扭曲图像

时间:2022-12-23 22:12:25

Canvas提供了一个drawBitmapMesh(bitmap, meshWidth, meshHeight, verts, vertOffset, colors, colorOffset, paint)方法,该方法可以对Bitmap进行扭曲,实现“水波荡漾”、“风吹旗帜”等各种扭曲效果。

drawBitmapMesh方法的关键参数说明:

bitmap:指定需要扭曲的源位图。

meshWidth:该参数控制在横向上把该源位图划分成多少格。

meshHeight:该参数控制在纵向上把该源位图划分成多少格。

verts: 该参数是一个长度为(meshWidth+1)*(meshHeight+1)*2的数组,它记录了扭曲后的位图各“顶点”位置,虽然它是个一位在数组,它实际上记录的数据是形如(x0,y0)、(x1,y)、(x2,y)......(xN,yN)格式的数据,这些数组元素控制对Bitmap位图的扭曲效果。

vertOffset: 控制verts数组中从第几个数组元素开始才对Bitmap进行扭曲(忽略vertOffset之前数据的扭曲效果).