Silverlight将图片转换为byte的实现代码

最近总是有人问如何通过Silverlight上传图片并保存的后台服务器?众所周知,Silverlight是客户端程序,不能很好与服务器进行“沟通”,上传图片的方法呢大致都是通过以下流程:

  1、客户端获取图片-->2、转换能够传输的数据-->3、传递数据到服务端-->4、服务端还原数据为图片

  第一步和第四步没有问题,问题大多出在第二步和第三步,如何得到客户端和服务端都能识别并且容易传递的数据呢?

  如果你使用的客户端和服务端都是.NET方案,这就非常好办,可以通过下面的方法:

  1、客户端得到客户选择的FileInfo,然后通过WebClient方法post到服务端,服务端再还原成图片即可,详细文章http://www.jb51.net/article/74520.htm

2、客户端将客户选择的图片文件转换成FileStream包裹在一个类中通过WCF传递到服务端,服务端再还原,详细文章http://www.jb51.net/article/74523.htm

  有些同学会抓耳挠腮的问,难道就没有人用silverlight传递到类似JAVA,PHP的情况吗?当然有,而且我最近碰到的都是这类似的情况,事先声明我不是实在不了解JAVA和PHP,我只能将图片转换成byte给你,至于你怎么还原,我只能说:”同学,任重而道远!“,不废话了,下面见分析:

  之前走了不少弯路,总是想着将WriteableBitmap转换成byte(也不知道是谁上来就让用WriteableBitmap转,T_T),后来我才发现其实完全没必要这么麻烦,直接上代码:

byte[] staticByte;//全局byte,为将byte转换为Image

  private void OpenImage()
  {
   OpenFileDialog imageFile = new OpenFileDialog()
   {
    Filter = "Jpeg Files (*.jpg)|*.jpg|All Files(*.*)|*.*"
   };
   if (imageFile.ShowDialog() == true)
   {
    System.IO.Stream fileStream=imageFile.File.OpenRead();
    byte[] imageByte=new byte[fileStream.Length];//设置byte的长度为文件流的长度
    fileStream.Read(imageByte,0,imageByte.Length);//将文件流信息读取到byte数组中
    staticByte = imageByte;//将读取好的byte数组保存到全局
    byteTextBox.Text=UTF8Encoding.UTF8.GetString(imageByte,0,imageByte.Length);//将byte数组显示到前台
   }
  }

直接通过FileStream.Read方法将文件流转换成byte,ok完工!

  后面我加了一点代码将byte又转换成图片,代码如下:

private void button1_Click(object sender, RoutedEventArgs e)
  {
   OpenImage();
   MemoryStream memoryStream = new MemoryStream(staticByte,0,staticByte.Length);//将byte转换为内存流
   BitmapImage img = new BitmapImage();
   img.SetSource(memoryStream);//设置BitmapImage的源为内存流
   this.image1.Source = img;//显示图片
  }

程序图片

选择图片界面

效果界面

程序源码
  使用vs2010 sp1+silverlight5编写,SilverlightImageToByte

(0)

相关推荐

  • 深入分析WPF客户端读取高清图片卡以及缩略图的解决方法详解

    在Ftp上传上,有人上传了高清图片,每张图片大约2M.如果使用传统的BitmapImage类,然后绑定 Source 属性的方法,有些电脑在首次会比较卡,一张电脑10秒,4张大约会卡40秒. 所以我先异步的下载图片,得到downloadFileStream对象,然后绑定到BitmapImage类上.例如:System.Windows.Controls.Image photo = new Image{    Width = 100,    Height = 100,    Margin = new

  • silverlight实现图片局部放大效果的方法

    本文实例讲述了silverlight实现图片局部放大效果的方法.分享给大家供大家参考,具体如下: 很多购物平台中(比如京东购物),浏览产品详情时都有这种效果,前几天看到有朋友问SL能不能实现,当然可以 界面: 1.左侧小图片(用一个矩形Fill一张图片即可) 2.左侧半透明矩形 3.右侧大图片(用一个Canvas设置Clip裁剪可视区域作为蒙板,图片放置在Canvas中即可) 原理: 获取左侧半透明矩形的相对位置,然后动态调整右侧大图的Canvas.Left与Canvas.Top 需要知道以下技

  • C#实现图片放大功能的按照像素放大图像方法

    本文实例讲述了基于Visual C#实现的图片放大功能代码.可以直接放大像素,类似photoshop的图片放大功能,可用于像素的定位及修改,由于使用了指针需要勾选允许不安全代码选项,读者可将其用于自己的项目中! 关于几个参数说明: srcbitmap源图片 multiple图像放大倍数 放大处理后的图片 注意:需要在头部引用:using System.Drawing;using System.Drawing.Imaging; 至于命名空间读者可以自己定义. 主要功能代码如下: using Sys

  • WPF实现图片合成或加水印的方法【2种方法】

    本文实例讲述了WPF实现图片合成或加水印的方法.分享给大家供大家参考,具体如下: 最近项目中应用多次应用了图片合成,为了今后方便特此记下. 在WPF下有两种图片合成的方式,一种还是用原来C#提供的GDI+方式,命名空间是System.Drawing 和 System.Drawing.Imaging,另一种是WPF中新添加的API,命名空间是 System.Windows.Media 和 System.Windows.Media.Imaging . 我们来做一个简单的例子,分别用上面的两种方式实现

  • C# 实现的图片盖章功能,支持拖拽、旋转、放缩、保存

    实现图片盖章功能,在图片上点击,增加"图章"小图片,可以拖拽"图章"到任意位置,也可以点击图章右下角园框,令图片跟着鼠标旋转和放缩. 操作方法:1.点击增加"图章"2.选中移动图标3.点中右下角放缩旋转图章. 效果图: 实现代码如下: 1.  窗口Xaml代码 复制代码 代码如下: <Window x:Class="Lenovo.YogaPaster.ImageEditWindow"    xmlns="htt

  • C#图片按比例缩放的实现代码

    复制代码 代码如下: using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging; namespace Publics{    public class ImgHelper    {        public static void AdjustPhoto(int toWidth, int toHeight, string filePath, string fromFileName, stri

  • Silverlightbutton图片切换样式实例代码

    之前一直做WPF现在开始接触Slilverlight感触很多. 今天做一个Button要求 有两个图片,button默认有一个图片,鼠标over时用另一个图片, 用wpf做的时候写一个template很简单,但silverlight和wpf写起来不一样 记录一下.大概思路是两个image鼠标MouseOver的时候一个Visible一个Collapsed 写的是一个自定义控件,代码和皮肤分离,很简单的一个demo 代码下载:ImageButtonTest.rar 先写一个继承自button的im

  • c#图片缩放图片剪切功能实现(等比缩放)

    所谓c#图片处理高级应,多数是基于.net framework类库完成 复制代码 代码如下: using system;using system.collections.generic;using system.text;using system.io;using system.drawing;using system.drawing.drawing2d;using system.drawing.imaging; namespace wujian.common{    /// <summary>

  • WPF/Silverlight实现图片局部放大的方法分析

    本文实例讲述了WPF/Silverlight实现图片局部放大的方法.分享给大家供大家参考,具体如下: 最近的项目中也要用到一个局部图片放大的功能,前面这篇<silverlight实现图片局部放大效果的方法>虽然已经给出了原理.知识要点.尺寸要点及后端主要代码,但遗憾的是没有给出xaml的代码.这里按照前文中的提示,动手用WPF实践了一下,花了一个小时,终于搞出来了.这篇文章也就算是一个补充吧. 界面如下图所示: 实现的原理和用到的知识点请点击上面的链接,杨大侠已经说的很清楚了.这里主要强调的就

  • Silverlight将图片转换为byte的实现代码

    最近总是有人问如何通过Silverlight上传图片并保存的后台服务器?众所周知,Silverlight是客户端程序,不能很好与服务器进行"沟通",上传图片的方法呢大致都是通过以下流程: 1.客户端获取图片-->2.转换能够传输的数据-->3.传递数据到服务端-->4.服务端还原数据为图片 第一步和第四步没有问题,问题大多出在第二步和第三步,如何得到客户端和服务端都能识别并且容易传递的数据呢? 如果你使用的客户端和服务端都是.NET方案,这就非常好办,可以通过下面的方

  • java 将byte中的有效长度转换为String的实例代码

    一般的我们使用byte接收读取到的数据,若数据没有达到byte定义的大小时,我们直接将byte转换为String则会出现乱码的情况,在这种情况下应该基于read的返回值来转换byte,否则将产生乱码的情况, 下面是一个简单的示例: package com.javaio.myinputstream; public class MyConsole { public static void main(String argv[]) throws Exception { System.out.printl

  • 25行Java代码将普通图片转换为字符画图片和文本的实现

    本文主要介绍了25行Java代码将普通图片转换为字符画图片和文本的实现,分享给大家,具体如下: 原图 生成字符画文本(像素转换字符显示后,打开字符画显示相当于原图的好几倍大,不要用记事本打开,建议用notepad++等软件打开) 生成字符画图片(背景颜色和画笔颜色代码里可设置调节) 新建普通java 项目,Java单类实现代码,复制到java项目中,用idea编辑器 主方法运行.(引入的Class 都是JDK中自有的) import javax.imageio.ImageIO; import j

  • Java gif图片转换为jpg格式

    下面通过代码给大家介绍Java gif图片转换为jpg格式,具体代码如下所示: if(fileName.toLowerCase().endsWith(".gif")){//由于头像上传支持JPG.JPEG.BMP.GIF.PNG格式图片.而商汤人脸设备仅支持JPG.JPEG.BMP.PNG,故如图片为GIF格式需要转换 fileParams.put("avatarFile", api.GifToJpg(avatar_file)); }else{ fileParams

  • php图片加中文水印实现代码分享

    例1 复制代码 代码如下: <?php Header("Content-type: image/png"); /*通知浏览器,要输出图像*/ $im = imagecreate(400 , 300); /*定义图像的大小*/ $gray = ImageColorAllocate($im , 235 , 235 , 235); $pink = ImageColorAllocate($im, 255 , 128 , 255); $fontfile = "simkai.ttf

  • android图片类型之间相互转换实现代码

    本文实例讲述了android图片类型之间相互转换实现代码.分享给大家供大家参考.具体如下: android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下: 1.Drawable → Bitmap Java代码如下: public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawab

  • Android 给图片加上水印的示例代码(支持logo+文字)

    本文介绍了Android 给图片加上水印的示例代码(支持logo+文字),分享给大家,具体如下: 现在我们想要往图片上打上水印,该水印应符合这样的需求的: 支持logo+文字: 文字信息支持多行展示: 用户可以选择水印在图片上的生成位置(左上.右上.右下和左下). 粗略的结构图低配版大概就长这样... 水印结构图.png 现在提供这样的一种思路去实现这一个需求,我们可以通过自定义一个view,view的布局中包含logo.公司名称和相关信息,这个view就是我们要打上图片的水印. 这样的一个vi

  • python如何将图片转换为字符图片

    简介 一个简单的python程序,将图片转换为字符图片. (为了简便,很多参数写死了,自己看着改吧. (←∀←)) 正文 原图(侵删) 结果图 源码 [更多细节]-->戳这里 #-*- coding: UTF-8 -*- from PIL import Image from PIL import ImageDraw from PIL import ImageFont import matplotlib.pyplot as plt import numpy as np import time de

随机推荐