核心要点:左上拉伸,右下内容 使用系统自带draw9patch工具制作9图 采用NinePatch图片做背景,可使背景随着内容的拉伸(缩小)而拉伸(缩小)。 那么如何将普通的PNG图片编辑为NinePatch图片呢, Android SDK/tools目录下提供了编辑器draw9patch.bat,双击即可打开。 执行该工具,然后点击“File”->“open 9-path”打开一张用于制作NinePatch图片的图片。 制作完后,点击“File”—“save 9-path”保存图片,draw9patch工具会自动为图片加上*.9.png后缀。 使用NinePatchEditor制作.9图片 用法基本同SDK自带的draw9patch ?
print v,a[v]}}' $LOG_FILE |sort -k2 -nr echo "----------------------" echo "统计访问页面状态码数量" awk '{a[$7" "$9] ++}END{for(v in a){if(a[v]>5)print v,a[v]}}' 7、查看网卡实时流量脚本 #! # 禁用selinux sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config # 关闭防火墙 if egrep "7.[0-9] proc/sys/vm/swappiness # 安装系统性能分析工具及其他 yum install gcc make autoconf vim sysstat net-tools iostat if 9、 监控 100 台服务器磁盘利用率脚本 #!
print v,a[v]}}' $LOG_FILE |sort -k2 -nrecho "----------------------"echo "统计访问页面状态码数量"awk '{a[$7" "$9] ++}END{for(v in a){if(a[v]>5)print v,a[v]}}'7、查看网卡实时流量脚本#! crontabfi# 禁用selinuxsed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config# 关闭防火墙if egrep "7.[0-9] /proc/sys/vm/swappiness# 安装系统性能分析工具及其他yum install gcc make autoconf vim sysstat net-tools iostat if9、 监控 100 台服务器磁盘利用率脚本#!
需求 我的需求是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高。 思路 1、 先使用PIL.Image.size获取输入图片的宽高。 image.crop(box) crop_img.save(output_img_path) if __name__ == '__main__': dataset_dir = "cut" # 图片路径 output_dir = 'out' # 输出路径 crop_w = 300 # 裁剪图片宽 crop_h = 300 # 裁剪图片高 # 获得需要转化的图片路径并生成目标路径 x), os.path.join(output_dir, x)) for x in os.listdir(dataset_dir)] # 转化所有图片
infile = 'D:\original_img.jpg' outfile = 'D:\adjust_img.jpg' im = Image.open(infile) (x,y) = im.size #read image size x_s = 250 #define standard width y_s = y * x_s / x #calc height based on standard width out = im.resize((x_s,y_s),Image.ANTIALIAS) #resize image with high-quality out.save(outfile)
基于canvas,通过toDataURL动态生成base64图片。 目前我主题的Gravatar头像,就是利用这个LetterAvatar脚本实现未设置Gravatar头像则读取ALT标签,自动生成首字图片替代默认的头像图片。 我的实现原理和插件不同,配合头像本地缓存功能,判断无头像后,直接为无头像的图片添加特定的class类,然后通过LetterAvatar脚本替换图片。 展开收缩 另附LetterAvatar脚本演示代码: <! ", "#2ecc71", "#3498db", "#9b59b6", "#34495e", "#16a085", "#27ae60", "#2980b9", "#8e44ad", "#2c3e50",
SQUARE_FIT_SIZE = 300 LOGO_FILENAME = 'catlogo.png'
browser.maximize_window() 最大化窗口 browser.execute_script(js) 执行JS脚本 element.get_attribute('src') 获取元素属性 保存页面所有图片 python 3.5.2 from selenium import webdriver import time import urllib 爬取页面地址 url = "https body/div[4]/div[3]/div[2]/div//a/img" 启动Firefox浏览器 driver = webdriver.Firefox() 最大化窗口,因为每一次爬取只能看到视窗内的图片 driver.maximize_window() 记录下载过的图片地址,避免重复下载 img_url_dic = {} 浏览器打开爬取页面 driver.get(url) 模拟滚动窗口以浏览下载更多图片 pos = 0 m = 0 # 图片编号 for i in range(10): pos += i*500 # 每次下滚500 js = "document.documentElement.scrollTop
需求说明: 线上之前使用的图片没有经过处理,比较大。应产品同事要求,将图片拿出来处理后再替换之前的图片,图片名不变。 vhosts/www.fangfull.com/main/upload -name 201407281934401406547280.jpg [root@fangfull_web1 ~]# 那么修改后的图片批量替换之前的图片的脚本如下 for n in `ls "$i"|awk -F"/" '{print $9}'` do if [ $m == $n ];then \cp - "$m"` else echo "123" > /dev/null 2>&1 fi done done done 脚本解刨如下 201407281940241406547624.jpg [root@fangfull_web1 ~]# for i in $(ls -l /tmp/image|awk -F" " '{print $9}
重要声明 该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关 XSS产生的背景 在Web 2.0出现以前,XSS跨站脚本攻击不是那么引人注目 但是在随着Web 2.0出现以后,配合流行的AJAX技术,XSS跨站脚本攻击的危害性达到了十分严重的地步 世界上第一个XSS跨站脚本蠕虫发生在MySpace网站,20小时内就传染了一百万个用户,最后导致该网站瘫痪 攻击事件一 在2005年10月初,世界上第一个XSS蠕虫Sammy出现了,它利用著名网络社区MySpace.com的系统漏洞,以XSS的方式进行传播的Sammy蠕虫的作者在社区个人资料中插入XSS攻击脚本 用户受到感染,造成网站一度瘫痪 MySpace.com为此不得不禁止所有用户在个人资料中加入任何脚本程序 2011年6月28日晚,新浪微博出现了一次比较大的XSS攻击事件。 g做充足的过滤,且将参数值直接显示在页面中,相当于在页面中嵌入了一个来自于2kt.cn的JS脚本 该JS脚本是黑客可以控制的文件,使得黑客可以构造任意JS脚本嵌入到的页面中,且通过AJAX技术完全实现异步提交数据的功能
跟据9png的实现原理自己写了个生成图片的函数,9png的原理是将图片切成9块如下
? 其中1、3、7、9不进行缩放,2,4,5,6,8进行缩放,这样就防止了放大后导致边界出现锯齿的问题
在实现过程中主要的就是找到4个关键点,如下
?
【新智元导读】继前天发布800万视频数据集之后,今天,谷歌又发布了图片数据库Open Images,包含了900万标注数据,标签种类超过6000种。 过去几年间,机器学习的发展已经推动了计算机视觉的快速进步:从系统自动为图片生成图说,再到能对分享的图片进行自然语言回复的APP。 对于想要从零开始训练一个深度神经网络的人来说,这些图片数据远远足够了。这些图片都拥有Creative Commons Attribution 许可。 图中位子为图片的标签,比如,左图的标签有:阳台、楼梯、门面、铁、门、内部装修、大门、结构、手扶栏杆等等。 900万图片数据集下载:https://github.com/openimages/dataset
import sys 3 4 pygame.init() 5 6 SIZE = WIDTH, HEIGHT = 200, 400 7 BLACK = 0, 0, 0 8 angle = 1 9 至于晃动的原因,叶子图片并不是一个圆形,pygame中,任何一个Surface对象,总有一个外切的矩形对象(通过get_rect()方法可以获得),图片旋转后,这个外切Rect对象的尺寸跟着变化,导致中心点也变化了 (注意:这里要搞一个新变量,存储旋转后的图片) 26 newLeaf = pygame.transform.rotate(leaf, angle) 27 # 校正旋转图片的中心点 28 3 4 pygame.init() 5 6 SIZE = WIDTH, HEIGHT = 200, 400 7 BLACK = 0, 0, 0 8 RED = 255, 0, 0 9 3 4 pygame.init() 5 6 SIZE = WIDTH, HEIGHT = 200, 400 7 BLACK = 0, 0, 0 8 RED = 255, 0, 0 9
.9图片 之前项目中有用到.9图片,因精力有限,一直没有去尝试着弄过。如今因公司发展问题集体裁员,赋闲在家,便抽空简单地了解了一下.9图片的使用,作文如下,以做积累。 需求概要 在Android Studio环境下将PNG图片制作成.9图片,使之实现纯色背景自适应拉伸,图案内容保持原始比例。 而.9.png是基于PNG图片,对其进行进行特殊处理,使之实现局部拉伸的图片格式。.9.png可实现两种效果: ? 效果1 ? .9.png图片 双击指定.9格式的png图片,Android Studio右侧显示板会显示如下图编辑面板。 ? .9.png实现QQ气泡效果 写在最后 实际开发中,美工裁剪好切图后发给开发者的往往是普通图片,如果开发中有使用到.9图片的需求,而读者们若对此不熟悉,此文会是很好的帮助!感谢阅读!
用户定义的变量的这个值的后四位直接用${__Random(1000,9999,)}替换掉就可以了
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。 6)写脚本一定先测试再到生产上。 写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port 9 检查网站可用性 1)检查URL可用性 2)判断三次URL可用性 思路与上面检查主机存活状态一样。 本章写的Shell脚本例子都比较实用,在面试题中也经常出现,希望大家参考着多动手写写,不要复制粘贴就拿来跑,这样是学不会的!
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。 6)写脚本一定先测试再到生产上。 1 获取随机字符串或数字 获取随机8位字符串: ? 9 检查网站可用性 1)检查URL可用性 ? 2)判断三次URL可用性 思路与上面检查主机存活状态一样。 ? 本章写的Shell脚本例子都比较实用,在面试题中也经常出现,希望大家参考着多动手写写,不要复制粘贴就拿来跑,这样是学不会的!
高级性能测试系列《8.脚本写法》 目录 一、没有接口文档怎么办 二、写脚本方法扩展 三、脚本功能增强 1.定义用户变量 2.用户参数 3.用户定义变量(全局变量)和用户参数(局部变量)的区别 一、没有接口文档怎么办 二、写脚本方法扩展 录制脚本: 1.badboy: 只支持windows,只能录制web网站,录制用的浏览器是本机的默认浏览器。 很多网站用的新的框架等,它就录制失败。 导出的脚本导入jmeter也不能保证就能打开,可能出现脚本缺少内容。 曾经很流行,现在已经不维护,已经被遗弃。 2.代理录制: 用于脚本参数比较多,或者用手动编写脚本,一时半会写不出来。 三、脚本功能增强 关联: 前面接口的响应信息,有动态值作为后续接口的传入参数。 我想把手机号码发生变化: 变量: 1.用户定义变量;2.用户参数。 1.用户定义变量: 1.配置元件;2.测试计划。
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。 6)写脚本一定先测试再到生产上。 写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port 9 检查网站可用性 1)检查URL可用性 2)判断三次URL可用性 思路与上面检查主机存活状态一样。 本章写的Shell脚本例子都比较实用,在面试题中也经常出现,希望大家参考着多动手写写,不要复制粘贴就拿来跑,这样是学不会的!
思路 代码 # -*- coding: utf-8 -*- ''' 将一张图片填充为正方形后切为9张图 Author: ''' from PIL import Image import sys #将图片填充为正方形 def fill_image(image): width, height = image.size #选取长和宽中较大值作为新图片的 new_image_length = width if width > height else height #生成新图片[白底] new_image = Image.new(image.mode, (new_image_length , new_image_length), color='white') #将之前的图粘贴在新图上,居中 if width > height:#原图宽大于高,则填充图片的竖直维度 int(width / 3) box_list = [] # (left, upper, right, lower) for i in range(0,3):#两重循环,生成9张图片基于原图的位置