+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0)
[image drawInRect:CGRectMake(0,0, newSize.width, newSize.height)]
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
此方法不会让图片变得模糊,如果指定的大小比图片本身的大小要小,也不会造成图片缺失,只是按比例把图片缩小到自己想要的大小
System.Drawing.Image img = System.Drawing.Image.FromFile(sSourceFile)//原图形System.Drawing.Bitmap desImg = new System.Drawing.Bitmap(640,480)//目标图形640X480
Graphics g //创建一个图形对象。
g = Graphics.FromImage(desImg)
g.DrawImage(img, new Rectangle(0, 0, desImg.Width, desImg.Height), new Rectangle(0, 0, img.Width, img.Height), GraphicsUnit.Pixel)//将原img图形,缩放到目标640X480大小
通过DrawImage方法后,生成的desImg可以再使用Bitmap的Save方法再次存储为图形文件或者直接绘制到WinForm界面。
以上代码的具体含义可查看MSDN关于.Net FrameWork的Graphics一节。
wxml部分:<image src="../images/xwbanner.png" mode="widthFix" bindload="imageLoad" style="width:{{ images[index].width }}rpxheight:{{ images[index].height }}rpx" ></image>
wxss部分:
image{
width:100%;
}
js部分:
Page({
data: {
images:{}
},
imageLoad: function(e){
var $width=e.detail.width,//获取图片真实宽度
$height=e.detail.height,
ratio=$width/$height //图片的真实宽高比例
var viewWidth=718, //设置图片显示宽度,左右留有16rpx边距
viewHeight=718/ratio //计算的高度值
var image=this.data.images
//将图片的datadata-index作为image对象的key,然后存储图片的宽高值
image[e.target.dataset.index]={
width:viewWidth,
height:viewHeight
}
this.setData({
images:image
})
},
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)