internal static class FileHelper
{
public static readonly Dictionary<string, string> fileFixDic = new Dictionary<string, string>
{
{"255216",".jpg"},
{"708783",".swf"},
{"678783",".swf"},
{"707686",".flv"},
};
/// <summary>
/// 下载图片
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static Image DownLoadImage(string url)
{
System.Exception exception;
return DownLoadImage(url, out exception);
}
/// <summary>
/// 下载图片
/// </summary>
/// <param name="url">图片地址</param>
/// <param name="exception"></param>
/// <param name="isRetry">是否重试</param>
/// <param name="reTryNumber">重试次数</param>
/// <returns>Image</returns>
public static Image DownLoadImage(string url, out System.Exception exception, bool isRetry = true, int reTryNumber = 2)
{
byte[] data = DownLoadWebFile(url, out exception, isRetry, reTryNumber);
return GetImageByByte(data);
}
/// <summary>
/// 下载资源文件
/// </summary>
/// <param name="url">资源文件地址</param>
/// <returns>byte[]</returns>
public static byte[] DownLoadWebFile(string url)
{
System.Exception exception;
return DownLoadWebFile(url, out exception);
}
/// <summary>
/// 下载资源文件
/// </summary>
/// <param name="url">资源文件地址</param>
/// <param name="exception">Exception</param>
/// <param name="isRetry">是否重试,默认是</param>
/// <param name="reTryNumber">重试次数 默认2</param>
/// <returns>byte[]</returns>
public static byte[] DownLoadWebFile(string url, out System.Exception exception, bool isRetry = true, int reTryNumber = 2)
{
var client = new WebClient();
byte[] data = null;
exception = null;
while (reTryNumber > 0)
{
try
{
data = client.DownloadData(url);
reTryNumber = 0;
}
catch (System.Exception ex)
{
reTryNumber--;
if (reTryNumber == 0)
{
exception = ex;
}
}
}
return data;
}
/// <summary>
/// 检查上传图片文件的像素是否符合
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public static bool CheckImagePixels(Image image)
{
//标准图片:1280X1024、800X600、640X480
if (image.Width == 1280 && image.Height == 1024)
{
return true;
}
if (image.Width == 800 && image.Height == 600)
{
return true;
}
if (image.Width == 640 && image.Height == 480)
{
return true;
}
return false;
}
/// <summary>
/// Byet Convert Image
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static Image GetImageByByte(byte[] bytes)
{
if (null == bytes)
{
return null;
}
var ms = new MemoryStream(bytes);
return Image.FromStream(ms);
}
/// <summary>
/// 生成缩略图
/// </summary>
/// <param name="image">原图</param>
/// <param name="width">宽</param>
/// <param name="height">高</param>
/// <returns>新图</returns>
public static Bitmap FixedSize(Image image, int width, int height)
{
int sourceWidth = image.Width;
int sourceHeight = image.Height;
int sourceX = 0;
int sourceY = 0;
int destX = 0;
int destY = 0;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = Math.Min((float)width / (float)sourceWidth, 1.0F);
nPercentH = Math.Min(((float)height / (float)sourceHeight), 1.0F);
//if we have to pad the height pad both the top and the bottom
//with the difference between the scaled height and the desired height
nPercent = Math.Min(nPercentH, nPercentW);
destX = (int)((width - (sourceWidth * nPercent)) / 2);
destY = (int)((height - (sourceHeight * nPercent)) / 2);
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap bmPhoto = new Bitmap(width, height, PixelFormat.Format24bppRgb);
bmPhoto.SetResolution(image.HorizontalResolution, image.VerticalResolution);
Graphics grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.Clear(Color.White);
grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
grPhoto.DrawImage(image,
new Rectangle(destX, destY, destWidth, destHeight),
new Rectangle(sourceX, sourceY, sourceWidth, sourceHeight),
GraphicsUnit.Pixel);
grPhoto.Dispose();
return bmPhoto;
}
/// <summary>
/// 获取文件的类型
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static string GetFileFix(byte[] bytes)
{
if (bytes.Length < 3)
{
return string.Empty;
}
string fileType = string.Format("{0}{1}{2}", bytes[0], bytes[1], bytes[2]);
return GetFileFix(fileType);
}
/// <summary>
/// 获取文件的类型
/// </summary>
/// <param name="fileStream"></param>
/// <returns></returns>
public static string GetFileFix(FileStream fileStream)
{
if (fileStream.Length < 3)
{
return string.Empty;
}
return GetFileFix(SteamToBytes(fileStream));
}
private static string GetFileFix(string fileType)
{
foreach (var key in fileFixDic.Keys)
{
if (fileType.Contains(key))
{
return fileFixDic[key];
}
}
return string.Empty;
}
/// <summary>
/// 将流文件转换为Byte数据
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
private static byte[] SteamToBytes(Stream stream)
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);
return bytes;
}
public static void CopyStream(Stream sourceStream, Stream destStream)
{
if (sourceStream == null)
{
throw new System.Exception("Source Stream can't be empty.");
}
if (destStream == null)
{
throw new System.Exception("destination Stream can't be empty.");
}
byte[] buffer = new byte[1024 * 8];
int count = 0;
while ((count = sourceStream.Read(buffer, 0, buffer.Length)) > 0)
{
destStream.Write(buffer, 0, count);
}
}
}相关推荐
无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?
无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?
python图片处理常用操作笔记
python图片处理常用操作笔记1. 静态图片操作笔记安装库导入库读写静态图片从磁盘读取图片将图片写入磁盘用cv2显示图片将彩色图转换为灰度图过滤图片中的噪点缩放图片的长宽图片截取颜色通道拆分与合并直方图均衡化图片翻转高维矩阵转置tensor中的用法,需要导入torch包。2. 动态图片操作笔记安装库导入库读取gif图片写出gif图片3. 一些简单功能实现笔记3.1 单色背景照片背景色替换3.2 为图片增加透明度图层并自定义透明度 萌新方便自己查询的笔记,记录一些常用的方法,不定时更新~ 1. 静态图片操作
跟着团子学SAP PS:BOM和项目结构的联动-BOM Transfer CN33
关于项目中的物料组件挂接你需要了解的一点功能
OpenCV常用图片处理函数
本文介绍OpenCV中常用的图形处理函数。要在Python中使用OpenCV,需要先安装依赖,使用来安装OpenCV。
Frida实战:SSL Pinning绕过技术全解析
本文详细解析了如何使用Frida工具绕过SSL Pinning技术,包括环境搭建、四种实战绕过方案及常见问题排查指南。通过具体代码示例和实战经验,帮助安全研究人员快速掌握SSL Pinning绕过技术,适用于金融类App的安全测试场景。
【杰理AC696X】ADKEY复用指示灯不定时出现灯不亮或按键失灵的问题
测试SDK版本:《ac696n_soundbox_sdk_v1.5.0-20211217》ADKEY复用指示灯的做法多用于蓝牙小音箱,IC引脚越来越少,复用也就用的越多了,不过,在使用前应评估好功能,因为复用的做法,肯定会牺牲点东西的,如果体验感啥的。 比如这个图,(V-)按键按下时,LED是会一直导通发光的,按不同阻值的按键还有亮度不一致的问题,这样的问题有的客户是不接受的,这就要另寻他法了。某天调好案子,放在一边测试时,发现指示灯不亮了,按键也不起作用,想起之前AC692系列也有类似的问题,很快就定位到
photoshop常用图片处理技巧
常用图片格式 图片是网页制作中很重要的素材,图片有不同的格式,每种格式都有自己的特性,了解这些特效,可以方便我们在制作网页时选取适合的图片格式,图片格式及特性如下: 1、psd photoshop的专用格式。 优点:完整保存图像的信息,包括未压缩的图像数据、图层、透明等信息,方便图像的编辑。 缺点:应用范围窄,图片容量相对比较大。 2、jpg 网页制作及日常使用最普遍的图像格式。 优点:图像压缩效...
江科大51单片机笔记【1】单片机及开发板介绍
单片机,Micro Controller Unit,简称MCU,内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(传感器)、处理(CPU)和硬件设备(电机、LED)的控制单片机算是一个袖珍版计算机,是一个完整的计算机系统,成本低体积小结构简单单片机的使用领域:智能仪表、实时工控、通讯设备、导航系统、家用电器等。
ios ---常用的图片处理技术
[转载]ios ---常用的图片处理技术 (2012-08-27 14:41:37) 转载▼ 标签: 转载 分类: iphone开发 不错的图片处理 原文地址:---常用的图片处理技术" style="text-decoration:none; color:rgb(9,67,130)">ios ---常用的图片处理技术作
【RTD】AD7793驱动程序
AD7793完整驱动程序,支持两线、三线、四线RTD。
13、无人机网络安全攻击检测:入侵检测系统综述
本文综述了无人机网络(FANETs)中的网络安全攻击与入侵检测系统(IDS)研究进展。文章介绍了无人机网络的架构设计、路由协议分类及移动模型,重点分析了DoS、DDoS、病毒蠕虫和零日攻击等常见安全威胁,并系统梳理了网络型、主机型、签名型、异常型、混合型等多种IDS的技术原理与应用。通过对比不同攻击类型及其检测机制,提出了综合使用多类IDS、更新签名库、优化路由、加强加密和建立应急响应等安全防护建议。同时展望了人工智能、量子安全和融合安全架构等未来发展趋势,旨在为提升无人机网络的安全性提供全面的技术参考。
Photoshop常用图片格式及图片处理技巧笔记
学习使用Photoshop的基本使用,以及Photoshop中关于切图这一块的知识,目的是能熟练使用Photoshop查看UI设计师的设计效果图,同时利用Photoshop切图来制作专业html页面图片是网页制作中很重要的素材,图片有不同的格式,每种格式都有自己的特性,了解这些特效,可以方便我们在制作网页时选取适合的图片格式,图片格式及特性如下:位图和矢量图总结 在网页制作中,如何选择合适的图片格式呢?photoshop是一款优秀的图像处理软件,作为前端开发工程师,掌握它的一些常用功能是必须的。photos
为Ollama本地大模型添加持久化记忆层:openclaw-ollama-memory项目详解
在构建基于大型语言模型(LLM)的对话应用时,上下文管理是核心技术挑战之一。其原理在于模型本身不具备跨会话的持久化记忆能力,每次请求都是独立的。这导致在多轮对话中,模型无法有效利用历史信息,用户体验割裂。从技术价值看,独立的记忆层通过解耦推理与存储,能突破模型固定上下文窗口的限制,实现更智能、连贯的交互。其核心应用场景包括聊天机器人、智能助手及需要长期记忆的复杂代理。本文聚焦的 openclaw-ollama-memory 项目,正是为 Ollama 生态提供的记忆层解决方案,它通过向量检索和智能摘要等机制
Android开发常用开源框架:图片处理
1. 图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管理图像和他们使用的内存的库 Glide 一个图片加载和缓存的库,使用的App有:网易新闻 Gl
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
收集Android开发常用开源框架:图片处理
收集Android开发常用开源框架:图片处理 1、图片加载,缓存,处理框架名称功能描述Android-Universal-Image-Loader&quot;&amp;gt;Andr...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
python中常用的图片处理的函数
python中常用的图片处理库 没有库就执行 2、常用函数 2.1、读图片 #如果给定正确的图片路径,将返回一个[height, width, channel]的numpy.ndarray对象,height表示图片高度,width表示图片宽度,channel表示图片的通道。灰度图则是[height,width]。 如果path路径出现问题会报错提示 检查路径 并返回一个none注:不知道为什么在读取.gif图片时,路径名设置正确,没有提示错误,但返回的是none。 这没什么需要说的。 这也没什么需要说的
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
图片处理常用工具
去水印 Inpaint 无损放大 BenVista PhotoZoom Pro
Java 常用图片处理合集
Java 常用图片处理合集 JDK类库创建一张简单图片 辨别图片类型 判断文件是否为图片格式 java加水印 JDK类库裁剪图片 Java合并图片 Java修改图片格式 Java修改图片尺寸 Java不修改尺寸压缩图片 java根据http url下载图片 Java携带HTTP头信息下载网络图片 PS:需要说明一下,文中给出的图片处理方法,有些性能不是很好,在实际项...
HTML常用文本标签及图片处理
(p标签则不保留空格和换行符)标题:<h1 align="right/left/center"> 标题 </h1><h1></h1>、<p></p>包围的内容默认自动前后换行,有行间距,独自占据一行。对比一下pre和上述格式标签运行结果,发现区别为pre其文本到左侧距离为固定值不变。右击左侧文件夹--新建--目录images--右击新建目录--crtl V。--CC0(知识共享组织Creative Common )右击图片---新的标签页打开---查看网址(完整路径)px------pixel(像素)
常用图片处理技巧
1,掉链级图片的替代图片 [Ctrl+A 全选,提示:你可修改代码后运行] 2,自动缩小大图经常看到一些图片很大,上传后显示会撑满屏幕下面的例子通过检测if(this.width>screen.width-350)then(this.width=screen.width-350)如果该图片的宽度大于“屏幕宽度-350”,则让该图就显示“屏幕宽度-350”这么大小
图片处理的常用方法
MagickImage大家可能都用过,它主要处理一些图片,它可以处理90多种的图片类型.它的功能非常强大,而我们在实际的应用中,主要用到它的缩放,截取,复制功能。其他的一些如写入文字,加背景色,旋转。。。用的少。 第一个常用的功能缩放(scaleImage)。 首先初始化一个ImageInfo对象,就是加载要处理的图片路径. ImageInfo info=
图片处理(一):pillow模块常用操作
安装: pip install Pillow 引入: import PIL from PIL import Image 简述 pillow库志愿者在PIL的基础上创建了一个分支版本,命名为Pillow。这个库专们用来处理图片,支持最新的python3版本。 坐标系统 PIL使用笛卡尔像素坐标系统,坐标(0,0)位于左上角,从上往下为正方向,从左到右为正方向。 坐标经常用于二元组(x,y)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖800x600的像素图像的长方形表示为(0,0,800,600
2万+



被折叠的 条评论
为什么被折叠?



