WPF中 如何将图片文件夹下的image图片转化成二进制byte[] 文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中 如何将图片文件夹下的image图片转化成二进制byte[] 文件相关的知识,希望对你有一定的参考价值。

如图,我想在xaml.cs 文件中写个方法,把pic 文件夹下某个png 或者jpG图片转化成byte[]二进制文件,请问怎么写,最好要完整的代码,谢谢 !

参考技术A 试试这个:
将pic文件的所有图片的生成方式设为Resource,首先获取流,
StreamResourceInfo info = Application.GetResourceStream(new Uri("pic/xx.jpg",UriKind.Relative));
Stream stream=info.Stream;
然后将流读入字节数组中,

byte[] buffur = new byte[stream.Length];
stream.Read(buffur, 0, buffer.Length);
参考技术B private byte[] FileContent(string fileName)  
  
    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);  
    try  
      
        byte[] buffur = new byte[fs.Length];  
        fs.Read(buffur, 0, (int)fs.Length);  
  
        return buffur;  
      
    catch (Exception ex)  
      
          return null;  
      
    finally  
      
        if (fs != null)  
          
  
            //关闭资源  
            fs.Close();  
          
      

记得带上IO命名空间

追问

你回答的i很专业,但是您这样的方法我也试过,只是没成功,遇到的问题是 filename的文件名该如何确定,比如我的pic文件夹有个xx.jpg文件,那有什么方法确定filename

追答

首先你先把文件下制定的图片路径提取出来。用System.IO.Directory.GetFiles()。

首先你先把文件下制定的图片路径提取出来。用System.IO.Directory.GetFiles()。

追问

用 DirectoryInfo 或者 directory 这种方法都找不到图片,因为项目编译过后pic/xx.jpg 这个文件是在用户的电脑上是找不到的,因为我没有把"pic/xx.jpg "放在Debug的根目录下面,而是包含在编译过后的exe文件里面的,不知道我解释的是否清楚,不知道能否用 pack://application:,,,/pic/xx.png 这种方法实现,谢谢!

本回答被提问者和网友采纳
参考技术C 楼上已经实现的你要的。
FileStream fs = new FileStream(imagepath, FileMode.Open);
byte[] byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Close();
return byData;

不知道你的追问是不知道File去遍历还是知道FileName 但是找不到完整路径。你要遍历文件夹就
DirectoryInfo info =new DirectoryInfo("../pic");
foreach(File file in info.GetFiles)

file.FullName 就是你要的File路径。
追问

用 DirectoryInfo 或者 directory 这种方法都找不到图片,因为项目编译过后pic/xx.jpg 这个文件是在用户的电脑上是找不到的,因为我没有把"pic/xx.jpg "放在Debug的根目录下面,而是包含在编译过后的exe文件里面的,不知道我解释的是否清楚,不知道能否用 pack://application:,,,/pic/xx.png 这种方法实现,谢谢!

追答

编译在项目中的就是加载到项目资源文件中去了,可以通过Resources获取

以上是关于WPF中 如何将图片文件夹下的image图片转化成二进制byte[] 文件的主要内容,如果未能解决你的问题,请参考以下文章

WPF中如何将一种颜色从图片中滤掉

WPF中 三态图 用啥控件呢?

wpf中如何控制图片的位置

如何才能将jpg格式的图片转化成png格式的

java中如何把一个图片转换成二进制流存入到类中啊?

Word里插入图片,转化为PDF,怎样保证高分辨率