WPF压缩上传图片
上传图片的时候如果是直接上传原图的话会有消耗较大流量和占内存,那我们发送图片时可以先压缩再发送上传,减少流量消耗和内存占比,下面来看看。
首先看看View视图部分,就是由简单的一个选择图片的按钮和一个图片显示区域组成的:
<StackPanel Orientation="Vertical">
<!--图片显示-->
<Image Width="450" Height="300" Margin="0 15 0 15" Source="{Binding IMGPath}"></Image>
<!--选择图片按钮-->
<Button Width="90" Height="30" Content="选择图片" Command="{Binding ChoosePhotoCommand}"></Button>
</StackPanel>
接着就是ViewModel部分,图片地址是的压缩上传后的图片的地址,还有与选择图片按钮绑定的命令和方法,整个压缩上传图片的流程就是点击选择图片按钮,弹出文件夹,选择需要上传的图片,获取原图的地址,把图片复制保存到指定的文件夹,然后调用无损压缩图片的方法把图片压缩,在把图片显示出来。当然这个方法是别的博主的,我这里来套用。
private String iMGPath;
/// <summary>
/// 图片地址
/// </summary>
public String IMGPath
{
get {
return iMGPath; }
set {
iMGPath = value; RaisePropertyChanged(() => IMGPath); }
}
private RelayCommand choosePhotoCommand;
/// <summary>
/// 选择图片发送按钮命令
/// </summary>
public RelayCommand ChoosePhotoCommand
{
get
{
if (choosePhotoCommand == null)
choosePhotoCommand = new RelayCommand(() => ExcuteChoosePhotoCommand());
return choosePhotoCommand;
}
set {
choosePhotoCommand = value; }
}
public void ExcuteChoosePhotoCommand()
{
System.Windows.Forms.OpenFileDialog openFiles =