当前位置: 首页 > news >正文

个人网站建设推广策划书捕鱼网站建设

个人网站建设推广策划书,捕鱼网站建设,网站制作公司哪家比较好,厦门室内装修公司原文链接 前言 有自己机房的公司一般都有一套存储系统用于存储公司的图片、视频、音频、文件等数据#xff0c;常见的存储系统有以NAS、FASTDFS为代表的传统文件存储#xff0c;和以Minio为代表的对象存储系统#xff0c;随着云服务的兴起很多公司逐渐将数据迁移到以阿里云…原文链接 前言 有自己机房的公司一般都有一套存储系统用于存储公司的图片、视频、音频、文件等数据常见的存储系统有以NAS、FASTDFS为代表的传统文件存储和以Minio为代表的对象存储系统随着云服务的兴起很多公司逐渐将数据迁移到以阿里云OSS为代表的云对象存储OSS的好处是不但解决了数据的存储还自带的很多文件的处理功能如图片的缩放、打水印、裁剪等功能例如我们要获获取一张宽为200大小的图片只需要在原图后面增加?x-oss-processimage/resize,w_200这个参数就可以了处理图片确实非常方便。 https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-processimage/resize,w_200。 传统的NAS、FASTDFS只有存储功能没有文件处理能力的我们可以使用图片处理软件给它加上类似的图片处理功能。常用的图片处理软件有Imagemagick、GraphicsMagick、OpenCV对应的JAVA操作库为im4java、JMagick、Javacv。用上这些图片处理软件再配置NginxLua或者OpenResty就可以让你的传统NAS存储也也有像OSS一样的图片处理能力。 ImageMagick、GraphicsMagick的安装 ImageMagick官网下载 官网下载地址https://imagemagick.org/script/download.php 以windows为例下载ImageMagick-7.1.1-15-Q16-HDRI-x64-dll.exe 然后下一步、下一步安装就好了安装完成后输入magick -version检查是否安装成功 PS C:\Users\Administrator magick -version Version: ImageMagick 7.1.1-15 Q16-HDRI x64 a0a5f3d:20230730 https://imagemagick.org Copyright: (C) 1999 ImageMagick Studio LLC License: https://imagemagick.org/script/license.php Features: Cipher DPC HDRI Modules OpenCL OpenMP(2.0) Delegates (built-in): bzlib cairo flif freetype gslib heic jng jp2 jpeg jxl lcms lqr lzma openexr pangocairo png ps raqm raw rsvg tiff webp xml zip zlib Compiler: Visual Studio 2022 (193532217)GraphicsMagick官网下载 GraphicsMagick最初源于ImageMagick5.5.22002年11月但从那时起就完全独立于ImageMagick项目。自从ImageMagick的fork以来许多作者使用开放的开发模型进行了许多改进参见新闻但没有破坏API或实用程序操作。下载地址 http://www.graphicsmagick.org/download.html 安装完成后输出gm检测是否安装成功。 C:\Users\Administratorgm GraphicsMagick 1.3.40 2023-01-14 Q16 http://www.GraphicsMagick.org/ Copyright (C) 2002-2023 GraphicsMagick Group. Additional copyrights and licenses apply to this software. See http://www.GraphicsMagick.org/www/Copyright.html for details. Usage: gm command [options ...]JAVA操作 JAVA操作GraphicsMagick可以使用im4java 引入POM依赖im4java dependencygroupIdorg.im4java/groupIdartifactIdim4java/artifactIdversion1.4.0/version/dependencyim4java官网地址 https://im4java.sourceforge.net im4java源码地址im4java download | SourceForge.net JAVA操作ImageMagick可以使用JMagick,引入POM依赖 dependencygroupIdjmagick/groupIdartifactIdjmagick/artifactIdversion6.6.9/version /dependency JMagick官网地址www.jmagick.org JMagick源码地址JMagick download | SourceForge.net 图片信息获取 命令获取图片信息 magick identify .\1.jpg .\1.jpg PNG 1920x1080 1920x108000 8-bit sRGB 1.31707MiB 0.000u 0:00.000//格式化输出 magick identify -format %W,%H,%B,%f,%m .\1.jpg 1920,1080,1381050,1.jpg,PNG JAVA获取图片信息 Testpublic void info() throws IOException, InterruptedException, IM4JavaException {String iImageDir C:\\Users\\Administrator\\Desktop\\img\\1.jpg;IMOperation operation new IMOperation();//格式化输出//operation.format(%W,%H,%B,%f,%m);operation.addImage(iImageDir);IdentifyCmd indentity new IdentifyCmd();ArrayListOutputConsumer output new ArrayListOutputConsumer();indentity.setOutputConsumer(output);indentity.run(operation);ArrayListString cmdOutput output.getOutput();String line cmdOutput.get(0);System.out.println(line);//C:\Users\Administrator\Desktop\img\1.jpg PNG 1920x1080 1920x108000 8-bit sRGB 1.31707MiB 0.000u 0:00.000}注意事项 如果运行代码报org.im4java.core.CommandException: java.io.IOException: Cannot run program identify: CreateProcess error2, 系统找不到指定的文件。是因为刚安装软件系统没找到命令重启电脑后就可以解决。 可以使用-format %W,%H,%B,%f,%m来格式化图片信息的输出 具体的格式化参数有很多详细可以参考官方文档你想要的图片信息应该都是有的。https://imagemagick.org/script/escape.phps 图片缩放 命令图片缩放 magick .\1.jpg -resize 200x100 1_w200h100.jpg magick identify -format %W,%H,%B,%f,%m .\1_w200h100.jpg 输出: 178,100,8003,1_w200h100.jpg,JPEGJAVA图片缩放 Testpublic void resizeImg() throws IOException, InterruptedException, IM4JavaException {String srcImagePath C:\\Users\\Administrator\\Desktop\\img\\1.jpg;Integer width 200;Integer height 100;String newImagePath C:\\Users\\Administrator\\Desktop\\img\\1_w200h100.jpg;IMOperation op new IMOperation();op.addImage(srcImagePath);op.resize(width, height);op.addImage(newImagePath);ImageCommand convert new ConvertCmd();convert.run(op);}注意事项 这里我们使用 -resize 200x100 想生成一张200x100的图片结果输出图片是178x100,因为原始图片为1920x1080为了保持图片宽高比例做了等比例缩放防止图片变形。 图片打水印 命令图片打水印 magick composite -geometry 200x20010050 -gravity center .\avatar.png .\1.jpg 1_avater.jpgJAVA图片打水印 Testpublic void testaddImgWatermark() throws Exception {String srcImagePathD://img/1.jpg;String destImagePathD://img/1_avater.jpg;String waterImgPathD://img/avatar.png;IMOperation op new IMOperation();//水印大小op.geometry(1000,1000,1000,500);// 水印图片位置NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEastop.gravity(NorthEast);// 水印透明度op.dissolve(100);// 水印op.addImage(waterImgPath);// 原图op.addImage(srcImagePath);// 目标op.addImage(destImagePath);ImageCommand cmd new CompositeCmd();cmd.run(op);} 注意事项 -geometry 200x20010050 中的200x200是设置水印图片的大小,20050设置水印图片相对于gravity的位置 -gravity center是给定水印的相对原图的位置支持NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast这个参数和阿里OSS加水印的也是一样的。 最终打出水印的效果如下 图片裁剪 命令图片裁剪 magick convert -gravity center .\1_avater.jpg -crop 200x20010050 1_cut.jpgJAVA图片裁剪 Testpublic void testCrop() throws Exception {String srcImagePathD://img//1.jpg;String destImagePathD://img/1_cut.jpg;IMOperation op new IMOperation();op.gravity(center);op.addImage(srcImagePath);op.crop( 200,200,100,50);op.addImage(destImagePath);ImageCommand cmd new ConvertCmd();cmd.run(op, srcImagePath, destImagePath);}最张裁剪效果 注意事项 -crop 200x20010050 结合 -gravity center刚好可以把我们打上的水印裁剪出来裁剪出的图片在左右两边还是有一点红色边框这个可能是计算有一两个像素误差。 图片加参数自动处理 有了以上的图片处理命令之后想要实现OSS ?x-oss-processimage/resize,w_200这样加参数处理图片可以使用NginxLua来实现集成了Lua模块的Nginx项目OpenResty 例如我们原始图片地址 http://127.0.0.1/img/1.jpg 自动缩放图片尺寸 http://127.0.0.1/img/1_400x400.jpg 下载安装 OpenResty - Download下载安装LUA Release Lua for Windows v5.1.5-52 Released · rjpcomputing/luaforwindows · GitHub Nginx配置引入Lua: http {lua_package_path D:\software\openresty\lualib\\?.lua;;;lua_package_cpath D:\software\openresty\lualib\\?.so;;; }Nginx配置文件中可以写成这样: location ~ /img/(\d)_(\d)x(\d).jpg$ {root D:/img;set $img_root D:/img/img;set $fileName ngx.arg[1];set $width ngx.arg[2];set $height ngx.arg[3];set $origin ${img_root}/${fileName}.jpg ;set $file ${img_root}/${fileName}_${width}x${height}.jpg;if (!-f $file) {rewrite_by_lua local command magick ..ngx.var.origin.. -resize ..ngx.var.width..x ..ngx.var.height.. ..ngx.var.file;os.execute(command);;}}当访问(http://127.0.0.1/img/1_400x400.jpg时可动态生成对应尺寸图片类似OSS的功能 生成的文件当然我们还可以使用LuaRedis缓存这里生成的文件如果有CDN还可以配置CDN缓存这些文件下次就可以从CDN缓存直接取对应尺寸的图片了减少服务器处理图片的性能消耗。很多大厂不将这种图片处理下沉到CDN边缘节点利用离用户最近CDN节点完成图片数据的处理减少数据回源从而减少中心服务器的性能消耗。 当然这个只是使用NginxLuaGraphicsMagick来实现简单的图片裁剪功能如果要实现阿里OSS图片处理要比这个复杂的多不仅要解决大量文件存储高可要和自动扩容问题还要解决高并发下图片裁剪的性能问题们只是通过这个案例了解图片自动缩放的基本原理原理看起来比较简单想要做的好而且还要给全国那么多企业用要保持高可用、高性能就比较有难度了。 总结 本文主要介绍了常用图片处理软件ImageMagick的使用并通过命令和JAVA代码演示图片信息的获取、缩放、打水印、裁剪功能在最后通过OpenRestyLua实现类似OSS的自动图片缩放功能。
http://www.w-s-a.com/news/575406/

相关文章:

  • 韩国优秀设计网站找做网站找那个平台做
  • 贵州省清镇市建设学校网站国家企业信用信息公示系统官网河北
  • 游戏界面设计网站网站建设问一问公司
  • 织梦网站模板如何安装教程视频国外哪些网站可以注册域名
  • 用群晖做网站网站中文名称注册
  • 做一个企业网站需要哪些技术app开发公司名字
  • 网站建设有技术的公司图片在线设计平台
  • 建公司网站的详细步骤关于进一步加强网站建设
  • 丰宁县有做网站的吗?维护一个网站一年多少钱
  • 杭州网站设计渠道wordpress购物主题
  • 山东政务网站建设文字logo免费设计在线生成
  • 韩雪个人网站唐山网络运营推广
  • 查建设工程业绩在哪个网站网站建设优化服务如何
  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司