最近在业务需求开发当中,有一个需求是按照报告的格式生成数据图片推送到企业微信群消息当中,企业微信消息倒是还好,这生成图片的还是第一次遇到啊,然后百度了一下发现也没有什么现成的框架可以用,只能自动手写一个工具类....*; import java.awt.image.BufferedImage; import java.io.*; import java.security.MessageDigest; import...java.security.NoSuchAlgorithmException; import java.util.*; import java.util.List; /** * @author zhanbo...数据 * @return r1: 图片Base64编码,r2: 图片Md5加密字符串 */ /* public static DoubleResult<String, String...DoubleResult.buildDoubleResult(bytesToBase64(bytes), bytesToMd5(bytes)); }*/ /** * 列表数据转图片
技术博客:悬笔e绝 文章转载自http://www.xuanbiyijue.com/2018/02/14/数据结构与算法-排序算法/ 常见的五种排序算法: 冒泡排序;选择排序;插入排序;归并排序;快速排序...; 前三种是基本排序算法,后两个是高级的排序算法; 冒泡排序 最慢 的排序算法之一,数据值会像气泡一样从数组的一段漂浮到另一端 基本思路: 1.依次比较相邻的两个数,如果第一个比第二个小,不变。...console.log(mergeSort(dataStore)); 快速排序 基本思路: 1.以一个数为基准(第一个数或者中间的数都可以),比基准小的放到左边,比基准大的放到右边 2.再按此方法对这两部分数据分别进行快速排序
有一些程序在sql server中存储图片的方式是通过二进制存储导数据库的,那么保存进去之后,怎么把图片显示出来呢?...= -1) { out.write(b2, 0, j); } out.flush(); out.close(); in.close(); 因为数据库存储的image类型对应Java的数据类型是byte...[]型,所以这边是用byte[]型来接受图片数据,然后在jsp这边: 然后在浏览器上就直接显示该图片了: 还可以将数据库的图片查询出来并保存到相对应的系统文件夹: byte[] bytes1 = “”//数据库查询出来的二进制...,此处不需改动 当然,如果数据库是多张图片的话,就给个循环把所有图片都输出就可以了: 以下两个方法是byte2hex()二进制转字符、hex2byte()字符转二进制代码: public static
java导出和导入excel数据 可以使用hutool的ExcelUtil工具。...数据导出成excel表格的的关键操作: 1、将Java对象List转换成List>的List,每个Map为excel一行数据 2、新建文件,使用ExcelUtil...写入数据 3、可使用HttpServletResponse输出响应流,在客户端直接下载 java服务端图片合成的工具 ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能...,简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于合成水印也可以),素材上支持图片、文本、矩形三种,支持定位、缩放、旋转、圆角、透明度、颜色、字体、字号、删除线、居中绘制...、文本自动换行等特性,足够覆盖图片合成的日常需求。
CLIP模型简介 CLIP的基本算法原理如下,为了对image和text建立联系,首先分别对image和text进行特征提取,image特征提取的backbone可以是resnet系列模型也可以是...CLIP模型优缺点总结 优点 zero-shot做得好,经过在400million大的未清洗的数据集上训练,在不同的数据集上表现还可以,可以自定义任务,而且效率很高。...在这两个数据集上,零射剪辑只比随机猜测好一点点。与特定任务模型相比,Zero-shot CLIP在非常细粒度的分类上也很困难,比如区分汽车模型、飞机变体或花卉种类之间的区别。...对于未包含在其预训练数据集中的图像,CLIP的泛化效果也很差。...例如,尽管CLIP学习了一个有效的OCR系统,但当从MNIST数据集评估手写数字时,zero-shot CLIP仅达到88%的准确率,远低于数据集上99.75%的人的准确率。
Java数据结构和算法 数据结构 线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。 非线性数据结构:常见的有:多维数组,集合,树,图,散列表(hash)....在Java里面就是指String,而String里面是由chat[]来进行储存。 KMP算法: 这个算法一定要牢记,Java数据结构这本书里面针对字符串的查找匹配算法也只介绍了一种。...Java里面很少提供这样的工具类,而java里面tree和图底层的native方法用了多维数组来储存。 2:集合 由一个或多个确定的元素所构成的整体叫做集合。...在Java里面可以去广义的去理解为实现了Collection接口的类都叫集合。 3:树 树形结构,作者觉得它是一种特殊的链形数据结构。最少有一个根节点组成,可以有多个子节点。...Java中的hashCode: 我们都知道所有的class都是Object的子类,既所有的class都会有默认Object.java里面的hashCode的方法,如果自己没有重写,默认情况就是native
指定切片的行数和列数) * * @param srcImageFile 源图像文件 * @param destDir 切片目标文件夹 * @param formatName 格式名称,即图片格式后缀
BufferedImage source = new BufferedImage(750, 1334, BufferedImage.TYPE_INT_RGB);...
sourceRegion:图片裁剪,参数(裁剪位置, 宽, 高)。 outputFormat:输出的图片格式。 toOutputStream:输出到OutputStream。...forceSize:压缩至指定图片尺寸(例如:横400高300) scale:指定图片的大小,值在0到1之间,1f就是原图大小,0.5就是原图的一半大小,这里的大小是指图片的长宽。...outputQuality:图片的质量,值也是在0到1,越接近于1质量越好,越接近于0质量越差。...IOException e) { e.printStackTrace(); } return null; } 遇到的问题 可能会出现OOM内存溢出的现象 ,需要调整-Xss大小 java...启动命令nohup java -jar -Xmx6000m XXX.jar >/dev/null 2>&1 /** * 压缩图片 * * @param bufferedImage BufferedImage
) { int i = 3; System.out.println(i^123);//120 System.out.println(i^123^123);//3 } } 将一张图片进行拷贝...=-1){ bout.write(len^123); } bout.close(); bin.close(); } } 效果: 打开图片报错: 接下来,对图片进行解密...:就是对已经加密的图片,进行拷贝,执行异或操作 public class Test001 { public static void main(String[] args) throws Exception
2.1 验证码的原理 网页之间实现验证码大体上有如下步骤: 1)生成一个随机数 2)将随机数写入图片 3)将图片返回到网页 4)用户获取到图片信息,输入图片内容 5)用户提交内容,服务端验证内容的准确性...这里简单使用“静态图片内容验证码”来作为一个实验例子,来实现我们需要的验证码功能。...2.1 生成一个算法验证码 这里同技术:Java-Web基础|生成图片验证码(一)的逻辑是一样的,这里我就简单的只写这个算法逻辑吧。...2、public static String produceImage(String resultCode) throws IOException 这个步骤比较简单 1)生成一张图片,将验证码写入图片,...这里其实是将上述的表达式写入图片,而计算的结果写入redis,用于后期校验 2)将图片写入到流中并返回 执行后的结果如下: 需要写入Redis的数据:94 需要回显到页面的数据(图片转码后): data
常见的预测算法有1.简易平均法,包括几何平均法、算术平均法及加权平均法;2.移动平均法,包括简单移动平均法和加权移动平均法;3,指数平滑法,包括一次指数平滑法和二次指数平滑法,三次指数平滑法;...经验法和试算法是选择权重的最简单的方法。一般而言,最近期的数据最能预示未来的情况,因而权重应大些。例如,根据前一个月的利润和生产能力比起根据前几个月能更好的估测下个月的利润和生产能力。...简单的全期平均法是对时间数列的过去数据一个不漏地全部加以同等利用;移动平均法则不考虑较远期的数据,并在加权移动平均法中给予近期资料更大的权重;而指数平滑法则兼容了全期平均和移动平均所长,不舍弃过去的数据...数据较少时可用全期平均、移动平均法;数据较多时,可用最小二乘法。但不能使用指数平滑法本身确定初始值,因为数据必会枯竭。 ...T ) v$ \” i, {: c 式中,yt=ayt-1+(1-a)yt-1 它们的基本思想都是:预测值是以前观测值的加权和,且对不同的数据给予不同的权,新数据给较大的权,旧数据给较小的权
对于上传的图片,有时候我们需要加上水印来标识图片的来源,以下java代码用来处理图片加文字和图片水印 import org.springframework.util.StringUtils; import...javax.imageio.ImageIO; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.geom.Rectangle2D...; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; /** * @author...waterImg 水印图片路径,如:C://myPictrue//logo.png * @param x 水印图片距离目标图片左侧的偏移量,如果x<0, 则在正中间 * @param.../logo.png * @param outImg 图片输出位置,如果为空,则覆盖原文件 * @param x 水印图片距离目标图片左侧的偏移量,如果x<0, 则在正中间
另外,在 Android 3.0 (API Level 11)之前,这些缓存的Bitmap数据保存在底层内存(native memory)中,并且达到预定条件后也不会释放这些对象,从而可能导致 程序超过内存限制并崩溃...使用太小的缓存并不能起到应有的效果,而使用太大的缓存会消耗更多 的内存从而有可能导致 java.lang.OutOfMemory 异常或者留下很少的内存供您的程序其他功能使用。...如果存在就使用缓存后的图片,如果不存在就启动后台线程去载入图片并缓存: [java] view plain copy public void loadBitmap(int resId, ImageView...像 GridView 这种控件可能具有很多图片需要显示,很快图片数据就填满了缓存容量。...然后,在Android 4.0中包含了一个更加可靠和推荐使用的DiskLruCache(libcore/luni/src/main/java/libcore/io/DiskLruCache.java)
第一部分:Java数据结构 要理解Java数据结构,必须能清楚何为数据结构?...数据结构在Java的语言体系中按逻辑结构可以分为两大类:线性数据结构和非线性数据结构。 一、Java数据结构之:线性数据结构 线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。...在Java里面就是指String,而String里面是由chat[]来进行储存。 KMP算法: 这个算法一定要牢记,Java数据结构这本书里面针对字符串的查找匹配算法也只介绍了一种。...树总结: 树在Java里面应用的也比较多。非排序树,主要用来做数据储存和展示。而排序树,主要用来做算法和运算,HashMap里面的TreeNode就用到了红黑树算法。...第二部分:Java基本算法 理解了Java数据结构,还必须要掌握一些常见的基本算法。
排序算法 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序的分类: 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。...外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。...事前估算的方法通过分析某个算法的时间复杂度来判断哪个算法更优. 1.2 时间频度 时间频度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。...2 算法的空间复杂度 类似于时间复杂度的讨论,一个算法的空间复杂度(Space Complexity)定义为该算法所耗费的存储空间,它也是问题规模n的函数。...基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
} return -1; } } 运行结果: 找到了下标为:4 1.2 二分查找 代码实现: package com.ssm.search; import java.util.ArrayList...} return resIndexList; } } } 运行结果: ArrayList=[4, 5] 1.3 插值查找 插值查找算法类似于二分查找...right – left) * (findVal – arr[left]) / (arr[right] – arr[left]) 代码实现: package com.ssm.search; import java.util.Arrays...代码实现: package com.ssm.search; import java.util.Arrays; /** * @author shaoshao * @version 1.0 * @...maxSize; i++) { f[i] = f[i - 1] + f[i - 2]; } return f; } //编写斐波那契查找算法
即:先存入队列的数据,要先取出。...maxSize-1,则将数据存入 rear所指的数组元素中,否则无法存入数据。...rear == maxSize - 1[队列满] 代码实现: import java.util.Scanner; /** * @author shaoshao * @version 1.0 *...front指向队列的第一个元素,front 的初始值是0 rear指向队列的最后一个元素的后一个位置,因为希望空出一个空间作为约定(判断队列是否满) rear的初始值是0 代码实现: import java.util.Scanner...用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束
显然,深度优先搜索是一个递归的过程 深度优先遍历算法步骤 访问初始结点v,并标记结点v为已访问。 查找结点v的第一个邻接结点w。...类似于一个分层搜索的过程,广度优先遍历需要使用一个队列以保持访问过的结点的顺序,以便按这个顺序来访问这些结点的邻接结点 广度优先遍历算法步骤 访问初始结点v并标记结点v为已访问。...结点v入队列 当队列非空时,继续执行,否则算法结束。 出队列,取得队头结点u。 查找结点u的第一个邻接结点w。...代码实现 package com.ssm.graph; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList...} //返回边的个数 public int getNumOfEdge() { return numOfEdge; } //返回结点i(下标)对应的数据
动态规划算法 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法 动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题...贪心算法 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法 贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解...重复第1步直到覆盖了全部的地区 代码实现 import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet...k][i]] + " "); } System.out.println(); // 输出dis数组的一行数据...package com.ssm.tenAlgorithms; import java.awt.Point; import java.util.ArrayList; import java.util.Comparator
领取专属 10元无门槛券
手把手带您无忧上云