常用的图片处理

WPF自定义控件ListView异步加载图片列表 通过改变ListView控件的ItemsControl.ItemContainerStyle样式可以实现各式各样的列表展示效果。如果后台读取文件夹图片资源后最后给ListView的ItemsSource赋值,可以在前台显示加载的图片列表,但是由于加载图片需要时间,会有一段空白停顿,并且要加载的图片越大停顿的时间越长。如下图所示: 这里的解决方案是首先异步加载图片地址,再异步读取图片资源的方式... 阅读详情
 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如何解决?

qq_63539957的博客 2万+

python图片处理常用操作笔记

python图片处理常用操作笔记1. 静态图片操作笔记安装库导入库读写静态图片从磁盘读取图片将图片写入磁盘用cv2显示图片将彩色图转换为灰度图过滤图片中的噪点缩放图片的长宽图片截取颜色通道拆分与合并直方图均衡化图片翻转高维矩阵转置tensor中的用法,需要导入torch包。2. 动态图片操作笔记安装库导入库读取gif图片写出gif图片3. 一些简单功能实现笔记3.1 单色背景照片背景色替换3.2 为图片增加透明度图层并自定义透明度 萌新方便自己查询的笔记,记录一些常用的方法,不定时更新~ 1. 静态图片操作

starvapour的博客 5784

跟着团子学SAP PS:BOM和项目结构的联动-BOM Transfer CN33

关于项目中的物料组件挂接你需要了解的一点功能

Lucas1211的博客 2万+

OpenCV常用图片处理函数

本文介绍OpenCV中常用的图形处理函数。要在Python中使用OpenCV,需要先安装依赖,使用来安装OpenCV。

KO_TU的博客 489

Frida实战:SSL Pinning绕过技术全解析

本文详细解析了如何使用Frida工具绕过SSL Pinning技术,包括环境搭建、四种实战绕过方案及常见问题排查指南。通过具体代码示例和实战经验,帮助安全研究人员快速掌握SSL Pinning绕过技术,适用于金融类App的安全测试场景。

weixin_42530732的博客 188

【杰理AC696X】ADKEY复用指示灯不定时出现灯不亮或按键失灵的问题

测试SDK版本:《ac696n_soundbox_sdk_v1.5.0-20211217》ADKEY复用指示灯的做法多用于蓝牙小音箱,IC引脚越来越少,复用也就用的越多了,不过,在使用前应评估好功能,因为复用的做法,肯定会牺牲点东西的,如果体验感啥的。 比如这个图,(V-)按键按下时,LED是会一直导通发光的,按不同阻值的按键还有亮度不一致的问题,这样的问题有的客户是不接受的,这就要另寻他法了。某天调好案子,放在一边测试时,发现指示灯不亮了,按键也不起作用,想起之前AC692系列也有类似的问题,很快就定位到

xx842678的博客 1656

photoshop常用图片处理技巧

常用图片格式 图片是网页制作中很重要的素材,图片有不同的格式,每种格式都有自己的特性,了解这些特效,可以方便我们在制作网页时选取适合的图片格式,图片格式及特性如下: 1、psd photoshop的专用格式。 优点:完整保存图像的信息,包括未压缩的图像数据、图层、透明等信息,方便图像的编辑。 缺点:应用范围窄,图片容量相对比较大。 2、jpg 网页制作及日常使用最普遍的图像格式。 优点:图像压缩效...

kai46385076的专栏 515

江科大51单片机笔记【1】单片机及开发板介绍

单片机,Micro Controller Unit,简称MCU,内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(传感器)、处理(CPU)和硬件设备(电机、LED)的控制单片机算是一个袖珍版计算机,是一个完整的计算机系统,成本低体积小结构简单单片机的使用领域:智能仪表、实时工控、通讯设备、导航系统、家用电器等。

2301_80195807的博客 840

ios ---常用的图片处理技术

[转载]ios ---常用的图片处理技术  (2012-08-27 14:41:37) 转载▼ 标签:  转载 分类: iphone开发 不错的图片处理 原文地址:---常用的图片处理技术" style="text-decoration:none; color:rgb(9,67,130)">ios ---常用的图片处理技术作

Leeyehong_self的专栏 1092

【RTD】AD7793驱动程序

AD7793完整驱动程序,支持两线、三线、四线RTD。

只要思想不滑坡,想法总比问题多。 6177

13、无人机网络安全攻击检测:入侵检测系统综述

本文综述了无人机网络(FANETs)中的网络安全攻击与入侵检测系统(IDS)研究进展。文章介绍了无人机网络的架构设计、路由协议分类及移动模型,重点分析了DoS、DDoS、病毒蠕虫和零日攻击等常见安全威胁,并系统梳理了网络型、主机型、签名型、异常型、混合型等多种IDS的技术原理与应用。通过对比不同攻击类型及其检测机制,提出了综合使用多类IDS、更新签名库、优化路由、加强加密和建立应急响应等安全防护建议。同时展望了人工智能、量子安全和融合安全架构等未来发展趋势,旨在为提升无人机网络的安全性提供全面的技术参考。

wasm7browser的博客 162

Photoshop常用图片格式及图片处理技巧笔记

学习使用Photoshop的基本使用,以及Photoshop中关于切图这一块的知识,目的是能熟练使用Photoshop查看UI设计师的设计效果图,同时利用Photoshop切图来制作专业html页面图片是网页制作中很重要的素材,图片有不同的格式,每种格式都有自己的特性,了解这些特效,可以方便我们在制作网页时选取适合的图片格式,图片格式及特性如下:位图和矢量图总结 在网页制作中,如何选择合适的图片格式呢?photoshop是一款优秀的图像处理软件,作为前端开发工程师,掌握它的一些常用功能是必须的。photos

我的个人博客 1865

为Ollama本地大模型添加持久化记忆层:openclaw-ollama-memory项目详解

在构建基于大型语言模型(LLM)的对话应用时,上下文管理是核心技术挑战之一。其原理在于模型本身不具备跨会话的持久化记忆能力,每次请求都是独立的。这导致在多轮对话中,模型无法有效利用历史信息,用户体验割裂。从技术价值看,独立的记忆层通过解耦推理与存储,能突破模型固定上下文窗口的限制,实现更智能、连贯的交互。其核心应用场景包括聊天机器人、智能助手及需要长期记忆的复杂代理。本文聚焦的 openclaw-ollama-memory 项目,正是为 Ollama 生态提供的记忆层解决方案,它通过向量检索和智能摘要等机制

weixin_42521558的博客 313

Android开发常用开源框架:图片处理

1. 图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管理图像和他们使用的内存的库 Glide 一个图片加载和缓存的库,使用的App有:网易新闻 Gl

郭风朴(guofengpu)的Android影音专栏 1115

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

收集Android开发常用开源框架:图片处理

收集Android开发常用开源框架:图片处理 1、图片加载,缓存,处理框架名称功能描述Android-Universal-Image-Loader&amp;quot;&amp;amp;gt;Andr...

qq_27614457的博客 330

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python中常用的图片处理的函数

python中常用的图片处理库 没有库就执行 2、常用函数 2.1、读图片 #如果给定正确的图片路径,将返回一个[height, width, channel]的numpy.ndarray对象,height表示图片高度,width表示图片宽度,channel表示图片的通道。灰度图则是[height,width]。 如果path路径出现问题会报错提示 检查路径 并返回一个none注:不知道为什么在读取.gif图片时,路径名设置正确,没有提示错误,但返回的是none。 这没什么需要说的。 这也没什么需要说的

qq_46717669的博客 2769

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

图片处理常用工具

去水印 Inpaint 无损放大 BenVista PhotoZoom Pro

ThePromonkeyOf_HeLuo的博客 271

Java 常用图片处理合集

Java 常用图片处理合集 JDK类库创建一张简单图片 辨别图片类型 判断文件是否为图片格式 java加水印 JDK类库裁剪图片 Java合并图片 Java修改图片格式 Java修改图片尺寸 Java不修改尺寸压缩图片 java根据http url下载图片 Java携带HTTP头信息下载网络图片 PS:需要说明一下,文中给出的图片处理方法,有些性能不是很好,在实际项...

ConstXiong 1万+

HTML常用文本标签及图片处理

(p标签则不保留空格和换行符)标题:<h1 align="right/left/center"> 标题 </h1><h1></h1>、<p></p>包围的内容默认自动前后换行,有行间距,独自占据一行。对比一下pre和上述格式标签运行结果,发现区别为pre其文本到左侧距离为固定值不变。右击左侧文件夹--新建--目录images--右击新建目录--crtl V。--CC0(知识共享组织Creative Common )右击图片---新的标签页打开---查看网址(完整路径)px------pixel(像素)

i336677d的博客 1926

常用图片处理技巧

1,掉链级图片的替代图片 [Ctrl+A 全选,提示:你可修改代码后运行] 2,自动缩小大图经常看到一些图片很大,上传后显示会撑满屏幕下面的例子通过检测if(this.width>screen.width-350)then(this.width=screen.width-350)如果该图片的宽度大于“屏幕宽度-350”,则让该图就显示“屏幕宽度-350”这么大小

Pazll网络布罗阁--快乐青年 2114

图片处理的常用方法

      MagickImage大家可能都用过,它主要处理一些图片,它可以处理90多种的图片类型.它的功能非常强大,而我们在实际的应用中,主要用到它的缩放,截取,复制功能。其他的一些如写入文字,加背景色,旋转。。。用的少。      第一个常用的功能缩放(scaleImage)。    首先初始化一个ImageInfo对象,就是加载要处理的图片路径.    ImageInfo info=

魏杰的专栏 1547

图片处理(一):pillow模块常用操作

安装: pip install Pillow 引入: import PIL from PIL import Image 简述 pillow库志愿者在PIL的基础上创建了一个分支版本,命名为Pillow。这个库专们用来处理图片,支持最新的python3版本。 坐标系统 PIL使用笛卡尔像素坐标系统,坐标(0,0)位于左上角,从上往下为正方向,从左到右为正方向。 坐标经常用于二元组(x,y)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖800x600的像素图像的长方形表示为(0,0,800,600

一条小黑龙的博客 1844
上一篇: 创建动态代理
下一篇: XML 处理
黄瓜黄瓜
博客等级 码龄15年 27粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值