none
silverlight 如何在本地判断照片大小,并将其缩略到指定大小后上传到服务器? RRS feed

  • 问题

  • 大家好:

         我想在silverlight上传文件的时候判断上传的文件是否是图片文件,如果是就判断其大小,如果大小超过指定的大小就将其缩略到指定的大小,然后再上传到服务器端,请问该如何实现?

        最好能够提供一些代码, 文件上传参考的是codeplex上的多文件上传那个代码

    谢谢

    2009年7月9日 6:34

答案

  •             OpenFileDialog MyOpenFileDialog = new OpenFileDialog();
                MyOpenFileDialog.ShowDialog();
                System.IO.FileInfo MyFile = MyOpenFileDialog.File;
                System.IO.FileStream MyStream = MyFile.OpenRead();
                byte[] BufferStream = new byte[(int)MyStream.Length];
                MyStream.Read(BufferStream, 0, (int)MyStream.Length);
                MyTbx.Text = "本地流读取完毕";
    当然,你要处理这个图片,就要对原始流进行处理,jpge,png,bmp,还有gif图片压缩算法,格式规范网络上都用公开,包裹对他们算法进行矩变换,压缩,改变大小,各种滤镜等,写好,程序算法含金量还是比较高的
    2009年7月11日 12:22
    版主

全部回复

  • 我是希望在本地处理完了后再上传到服务器,不是在上传完了后再处理,谢谢
    2009年7月9日 6:37
  • 最简单用画画工具处理就行
    你本地处理 没必要写什么代码 提供什么参考

    2009年7月9日 9:06
  • 最简单用画画工具处理就行
    你本地处理 没必要写什么代码 提供什么参考


    抱歉,是要求在silverlight 代码中实现,楼上没有看清楚哦
    2009年7月11日 5:33
  •             OpenFileDialog MyOpenFileDialog = new OpenFileDialog();
                MyOpenFileDialog.ShowDialog();
                System.IO.FileInfo MyFile = MyOpenFileDialog.File;
                System.IO.FileStream MyStream = MyFile.OpenRead();
                byte[] BufferStream = new byte[(int)MyStream.Length];
                MyStream.Read(BufferStream, 0, (int)MyStream.Length);
                MyTbx.Text = "本地流读取完毕";
    当然,你要处理这个图片,就要对原始流进行处理,jpge,png,bmp,还有gif图片压缩算法,格式规范网络上都用公开,包裹对他们算法进行矩变换,压缩,改变大小,各种滤镜等,写好,程序算法含金量还是比较高的
    2009年7月11日 12:22
    版主
  • 你这样做的话 只能判断大小的 要处理的话 silverlight没有gdi+类库没法处理 我想不到什么方法

    2009年7月11日 15:01
  •             OpenFileDialog MyOpenFileDialog = new OpenFileDialog();
    
                MyOpenFileDialog.ShowDialog();
    
                System.IO.FileInfo MyFile = MyOpenFileDialog.File;
    
                System.IO.FileStream MyStream = MyFile.OpenRead();
    
                byte[] BufferStream = new byte[(int)MyStream.Length];
    
                MyStream.Read(BufferStream, 0, (int)MyStream.Length);
    
                MyTbx.Text = "本地流读取完毕";
    
    
    当然,你要处理这个图片,就要对原始流进行处理,jpge,png,bmp,还有gif图片压缩算法,格式规范网络上都用公开,包裹对他们算法进行矩变换,压缩,改变大小,各种滤镜等,写好,程序算法含金量还是比较高的
    你这个方法读取到的是客户机的文件到客户机的内存里面,是这样吗?

    处理完成后能直接写入本机的一个临时文件吗?
    2009年7月11日 15:12
  • 对,可以写到本地存储里面
    2009年7月11日 15:18
    版主
  • 对,可以写到本地存储里面

    谢谢,试一下
    2009年7月12日 2:05
  •             OpenFileDialog MyOpenFileDialog = new OpenFileDialog();
    
                MyOpenFileDialog.ShowDialog();
    
                System.IO.FileInfo MyFile = MyOpenFileDialog.File;
    
                System.IO.FileStream MyStream = MyFile.OpenRead();
    
                byte[] BufferStream = new byte[(int)MyStream.Length];
    
                MyStream.Read(BufferStream, 0, (int)MyStream.Length);
    
                MyTbx.Text = "本地流读取完毕";
    
    
    当然,你要处理这个图片,就要对原始流进行处理,jpge,png,bmp,还有gif图片压缩算法,格式规范网络上都用公开,包裹对他们算法进行矩变换,压缩,改变大小,各种滤镜等,写好,程序算法含金量还是比较高的


    你好,我就是要把本地图片读出来后在本地做完缩略后上传,请问用哪种方案更加合理


    2009年7月17日 23:56
  •             OpenFileDialog MyOpenFileDialog = new OpenFileDialog();
    
                MyOpenFileDialog.ShowDialog();
    
                System.IO.FileInfo MyFile = MyOpenFileDialog.File;
    
                System.IO.FileStream MyStream = MyFile.OpenRead();
    
                byte[] BufferStream = new byte[(int)MyStream.Length];
    
                MyStream.Read(BufferStream, 0, (int)MyStream.Length);
    
                MyTbx.Text = "本地流读取完毕";
    
    
    当然,你要处理这个图片,就要对原始流进行处理,jpge,png,bmp,还有gif图片压缩算法,格式规范网络上都用公开,包裹对他们算法进行矩变换,压缩,改变大小,各种滤镜等,写好,程序算法含金量还是比较高的


    你好,感谢你的答复,我就是希望把图片文件在本地缩略后存储到临时路径再上传,存储问题可以解决,但silverlight中system.drawing不能用,那silverlight中是否有简单的把某个图片缩略的方法,谢谢

    2009年7月19日 12:22