【Github源码】

《上一篇》 介绍了Xmtool工具库中的扩展动态对象,今天我们继续为大家介绍其中的图像处理类库。

在我们的软件系统中,经常需要对图片进行各种各样的处理;例如最常见的头像缩放,需要将用户上传的图片缩放成系统需要的最佳大小。本工具包主要将常用的图片方法进行汇总,方便开发者使用。目前包中只提供了图片缩放和图片生成base64字符串的方法,后续根据需要会持续增加。

对图片文件进行缩放

对图片数据流进行缩放

将图片文件转换成Base64字符串

将图片数据流转换成Base64字符串

将Image对象内容转换成Base64字符串

1. 对图片文件进行缩放

public Image Resize(string originFile, int height, int width, bool keepRatio, bool getCenter)

说明:将原始图片文件缩放成指定宽高,并返回生成后的图片对象。

ImageTool tool = Xmtool.Image();
Image result = tool.Resize("c:\avatar.png", 200, 200, true, true);
// TODO

2. 对图片数据流进行缩放

public Image Resize(Stream stream, int height, int width, bool keepRatio, bool getCenter)

说明:将图片数据流缩放成指定宽高,并返回生成后的图片对象。

ImageTool tool = Xmtool.Image();
using (FileStream stream = new FileStream("c:\avatar.png", FileMode.Open, FileAccess.Read))
{
Image result = tool.Resize(stream, 200, 200, true, true);
// TODO
}

3. 将图片文件转换成Base64字符串

public string ToBase64(string file)

说明:将指定图片文件内容转换成Base64字符串并返回。

ImageTool tool = Xmtool.Image();
string base64str = tool.ToBase64("c:\avatar.png");
// TODO

4. 将图片数据流转换成Base64字符串

public string ToBase64(Stream stream)

说明:将图片数据流转换成Base64字符串并返回。

ImageTool tool = Xmtool.Image();
using (FileStream stream = new FileStream("c:\avatar.png", FileMode.Open, FileAccess.Read))
{
string base64str = tool.ToBase64(stream);
// TODO
}

5. 将Image对象内容转换成Base64字符串

public string ToBase64(Image image)

说明:将Image对象内容转换成Base64字符串并返回。

Image image = Image.FromFile("c:\avatar.png");
ImageTool tool = Xmtool.Image();
string base64str = tool.ToBase64(image);
// TODO

#### [【Github源码】](https://github.com/softwaiter/Xmtool)

开源.NetCore通用工具库Xmtool使用连载 - 图像处理篇的更多相关文章

  1. 开源.NetCore通用工具库Xmtool使用连载 - 加密解密篇

    [Github源码] <上一篇>详细介绍了Xmtool工具库中的正则表达式类库,今天我们继续为大家介绍其中的加密解密类库. 在开发过程中我们经常会遇到需要对数据进行加密和解密的需求,例如密 ...

  2. 值得推荐的C/C++开源框架和库

    值得推荐的C/C++开源框架和库  转自:http://www.cnblogs.com/lidabo/p/5514155.html   - 1. Webbench Webbench是一个在Linux下 ...

  3. Python的开源人脸识别库:离线识别率高达99.38%

    Python的开源人脸识别库:离线识别率高达99.38%   github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...

  4. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  5. 值得学习的C语言开源项目和库

    收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...

  6. 转载一篇c++开源框架和库

    值得学习的C语言开源项目 -1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性 ...

  7. Android 开源项目及库汇总(2)

    Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...

  8. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...

  9. Win10 UWP开发系列——开源控件库:UWPCommunityToolkit

    在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在G ...

  10. Cowboy 开源 WebSocket 网络库

    Cowboy.WebSockets 是一个托管在 GitHub 上的基于 .NET/C# 实现的开源 WebSocket 网络库,其完整的实现了 RFC 6455 (The WebSocket Pro ...

随机推荐

  1. 原来你是这样的JAVA[06]-反射

    1.JVM为每个加载的class及interface创建了对应的Class实例来保存class及interface的所有信息: 获取一个class对应的Class实例后,就可以获取该class的所有信 ...

  2. Hadoop环境安装与配置

    1.基础操作系统环境安装(略) 2.JDK的安装与配置 当前各大数据软件如Hadoop等,仍然停留在Java 8上,在本实验选用的是Java 8.在自己的Linux系统中,jdk可以使用如下命令进行一 ...

  3. Ubuntu SVN服务端安装方法

    Ubuntu SVN服务端安装方法:https://blog.csdn.net/sm_wang/article/details/78656120https://www.cnblogs.com/myme ...

  4. Hadoop NameNode启动后自动关闭解决方法

    Hadoop NameNode启动后过一会自动关闭了,查看日志文件报内存溢出异常: tail -100 /bigdata/logs/hadoop/hadoop-root-namenode-node1. ...

  5. 利用别名简化进入docker容器数据库的操作

    之前研究docker和数据库的交互,越发对docker这个东西喜爱了.因为平常偶尔会用到各类数据库测试环境验证一些想法,需要进一步简化进入到这些环境的步骤. 比如我现在有三套docker容器数据库测试 ...

  6. 加密 K8s Secrets 的几种方案

    前言 你可能已经听过很多遍这个不算秘密的秘密了--Kubernetes Secrets 不是加密的!Secret 的值是存储在 etcd 中的 base64 encoded(编码) 字符串.这意味着, ...

  7. Java自学网站--十几个网站的分析与评测

    ​简介 很多想学Java的人不知道怎样选教程,本文对Java自学网站进行评测. 本文不带主观倾向,只客观分析各个网站的区别. 第1类:大型培训机构(黑马等) 典型机构 黑马.尚硅谷.动力节点.白马.千 ...

  8. Installing Gradle

    Chapter 4. Installing Gradle 4.1. Prerequisites Gradle requires a Java JDK or JRE to be installed, v ...

  9. Gossip in Hyperledger Fabric

    1. Gossip协议基础 1.1 什么是分布式系统 分布式系统(Distributed System)是由多台计算机或计算节点组成的计算机系统,这些计算节点通过网络连接在一起,并协同工作以完成共同的 ...

  10. CSS之3D翻转效果

    <!DOCTYPE html> <html> <head> <title></title> <style type="tex ...