以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 正方形图片伸缩成梯形图片 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192058) |
-- 作者:genggeng -- 发布时间:2024/5/27 9:02:00 -- 正方形图片伸缩成梯形图片 代码如下,在执行 \' 应用梯形变换 matrix.Shear(topCenter, bottomCenter, heightFactor, 0) 时报错。请问该如何解决? Dim originalImage As Image = Image.FromFile(txt3 & "\\" & t(zdw) & ".png") \' 创建一个新的Bitmap对象,用于存储转换后的梯形图片 Dim width As Integer = originalImage.Width Dim height As Integer = originalImage.Height Dim newImage As New Bitmap(width, height) \' 使用Graphics对象来绘制图像 Using g As Graphics = Graphics.FromImage(newImage) \' 创建一个Matrix对象来定义变换 Dim matrix As New Matrix() \' 定义梯形的变换参数 \' 这里假设我们想要一个顶部宽度比底部宽度小的梯形 \' 需要根据实际需求调整参数 Dim topWidth As Single = width * 0.8F Dim bottomWidth As Single = width Dim heightFactor As Single = 1F \' 计算梯形的顶部和底部中心点 Dim topCenter As Single = topWidth / 2F Dim bottomCenter As Single = bottomWidth / 2F \' 应用梯形变换 matrix.Shear(topCenter, bottomCenter, heightFactor, 0) \' 创建一个GraphicsPath对象来定义梯形的路径 Dim path As New GraphicsPath() path.AddLine(topCenter, 0, topCenter, heightFactor * height) path.AddLine(topCenter, heightFactor * height, bottomCenter, height) path.AddLine(bottomCenter, height, bottomCenter + (bottomWidth - topWidth) / 2, heightFactor * height) path.AddLine(bottomCenter + (bottomWidth - topWidth) / 2, heightFactor * height, bottomCenter + (bottomWidth - topWidth), 0) path.CloseAllFigures() \' 将路径应用于Graphics对象 g.SmoothingMode = SmoothingMode.AntiAlias g.InterpolationMode = InterpolationMode.HighQualityBicubic g.PixelOffsetMode = PixelOffsetMode.HighQuality g.DrawImage(originalImage, path) \' 显示转换后的梯形图片 p3.Image = newImage End Using |
-- 作者:有点蓝 -- 发布时间:2024/5/27 9:53:00 -- 微软文档的里这个方法只有2个和4个参数,没有4个参数的 |