Python Pillow简单图像处理

首先,要安装Pillow库 pip install Pillow 主要用到的是PIL.Image对象 from PIL import Image,ImageFilter,ImageEnhance,ImageOps Croping 剪裁,接受一个元组作为参数,元组由4个像素点,组成矩形区域 im = Image.open(“Image001.JPG”)im=im.crop((34, 23, 100, 100))im.show() Resize 调整大小,接收一个元组作为参数,元组两个元素,对应宽度、高度 im.resize((50,50)).show() 翻转 flipping,左右翻转、上下翻转;调用transpose im.transpose(Image.FLIP_LEFT_RIGHT).show() Rotating 指定角度旋转 im.rotate(360).show() 压缩保存 保存(save)的时候指定optimize和quality参数 im.save(“New.JPG”, optimize=True, quality=90) 模糊(blur),就是加滤镜(filter)指定blur参数 im.filter(ImageFilter.BLUR).show() 增加锐度(sharpening) im.filter(ImageFilter.SHARPEN).show() 设置亮度(Brightness) im=ImageEnhance.Brightness(im)im.enhance(1.5).show() 设置对比度(Contrast) im=ImageEnhance.Contrast(im)im.enhance(1.5).show() 添加一些滤镜:灰边 grayscale im=ImageOps.grayscale(im) im=ImageOps.invert(im)im=ImageOps.posterize(im,4)im.show()

How to create a ISO image using mksysb and perform the restoration in aix?

Assume the server name is "testserver"Taking the mksysb on the /mnt directory. (it can be nim server nfs filesystem)mksysb -i -e -X /mnt/testserver.mksysb     To confirm the mksysb backup is good for restore.listvgbackup –f /mnt/testserver.mksysbTo create a iso directory to hold the iso image and go inside it.mkdir /mnt/testserver/isocd /mnt/testserver/isoTo create iso image using mksysbmkcd -L -S -I /mnt/testserver/iso -m /mnt/testserver.mksysbcd_image_12345 file has been

使用Python修改Oracle数据块(上)

近日,旧事告一段落,新事情还没有开始,有时间闲看一些资料,忘了因为什么原因,找到python 的bitarray 文档阅读,突然冒出用这个来修改一下Oracle 数据块的想法…… 这两天测试读取、解析是没问题了,修改、写入还没来得及开始——所以这是“上”篇。 这里只涉及数据文件的“header block”,一般来说说,“header block”有两个:block 0,block 1,今天这里只操作block 1,对其中的"kcvfh"结构进行读取操作。先给出"bbed”显示的block 1结构... struct kcvfh, 860 bytes @0 struct kcvfhbfh, 20 bytes @0 ub1 type_kcbh @0 0x0b ub1 frmt_kcbh @1 0xa2 ub1 spare1_kcbh @2 0x00 ub1 spare2_kcbh @3 0x00 ub4 rdba_kcbh @4 0x01c00001 ub4 bas_kcbh @8 0x00000000 ub2 wrp_kcbh @12 0x0000 ub1 seq_kcbh @14 0x01 ub1

Relax-and-Recover使用说明

Relax-and-Recover - Linux bare metal disaster recovery and system migration solution (cfr. mksysb, ignite)这是一个bmr(Bare metal recovery)工具,只针对linux,功能效果类似mksysb,ignite Getting Started This quick start guide will show you how to run Relax-and-Recover from the git checkout and create a bootable USB backup. Start by cloning the Relax-and-Recover sources from GitHub: [code language="plain"]git clone https://github.com/rear/rear.git[/code] Move into the rear/

Python程序生产环境离线部署纪要

最近做了一个Python Django应用,到生产环境部署的工作,总结备忘。基本特征: 1. Linux环境的Python一般都还是2.7 2. 开发环境的Python总是越高越好,本例是3.7 3. 生产环境没有外网连接,没有yum源、pypi 安装Python 3.7: 需要libffi-devel 升级的openssl版本需要 编译安装时 ./configure —prefix=/usr/local/python3.7 —with-openssl=/opt/openssl1.0.1/ python 3.7 自带virtualenv(创建自己的venv,不要覆盖Linux的python默认环境) python -m venv <venv_dir> 开发测试环境的准备: pip freeze > requirements.txt 使用pip下载离线wheel pip download -d packages -r requirements.txt or pip wheel —wheel-dir=packages -r requirements.txt 完成这一步后,需要的python wheel就都保存在packages文件夹下了,但是有一个需要注意特别处理的问题,就是开发平台可能和部署平台不一致问题——有些下载的wheel文件是平台相关的,比如我的开发环境是mac,那这个文件名就带macos,这种情况下,需要手工下载生产环境对应平台文件——linux x86_64之类的。 pyzmq、SQLAlchemy都存在这个问题。将相关文件copy到生产环境,在之前准备的venv下: pip3 install —no-index —find-links=packages -r requirements.txt

Oracle 19c CRS重启案例记录

对文件系统进行较大写入操作(30g文件写入),导致RAC一个节点被驱逐重启。 MOS info:Bug 30472602 CRS: oracssdagent is rebooting this node because the file system did not respond This note gives a brief overview of bug 30472602. The content was last updated on: 15-JAN-2020 Click here for details of each of the sections below.Affects: Product (Component) Oracle Server (PCW)Range of versions believed to be affected Versions

Oracle CRS 启动问题诊断

  #工程师培训# #CRS# 从10g开始,Oracle使用自己的CRS管理RAC集群,到了11g、12c,voting disk,ocr,共享存储等等都由Oracle自己的集群软件管理(从11g开始,名称由CRS调整为GI——Grid Infrastructure)。 对外提供服务的数据库集群,依赖于底层GI。而GI要求共享存储、网络通讯、节点间进程通讯都准备就绪,才能正常运行。GI本就是由许多组件构成的集群(复杂)管理系统,雪上加霜的是,由于GI的日志输出中,有过多的Info级别的信息,且各个组件都有自己的日志,这些都造成了如果GI启动不成功,定位故障点比较困难。 本文结合MOS 《Troubleshoot Grid Infrastructure Startup Issues》一文对GI启动问题进行梳理。 首先还是来说日志,先要能确定其存储位置: Oracle 10g, 存储于$GRID HOME/log/name>/… ,当然在10g中其实还没有明确定义GRID HOME。 Oracle 11g, $GRID HOME/log/name>/ , 好像跟10g的没有区别 Oracle 12c,发生了改变,不加注意,容易在出问题时找不到日志 3.1 Standard cluster: $ORACLE_BASE/diag/crs/… 位置发生了改变,并且彻底使用ADR来管理日志。 3.2 Flex cluster: $ORACLE HOME/log/name>  因为Grid Infrastructure组件较多(CRSD,CSSD,EVENTD…),所以日志也就很多,总体来说,应该先查看alert.log ,再查看各组件的日志。 即使你已经对于去哪里能找到Grid Infrastructure的日志很清楚,真正面对目录中那么多日志、trace,以及日志中不知道什么意思的各种输出,很容易迷失。我的经验是,在“陷入”日志之前,先从操作系统角度查找一下,有没有什么明显的问题,导致Grid Infra不能启动。 OS级别的检查: 网络PING,将/etc/hosts中定义的,集群内的各个IP都ping一下 共享存储,以及其权限 文件系统空间使用、inode使用(Grid Infra经常因为产生日志太多,用尽inode,把自己撑死) … 总觉得还有别的,以后想到再补充 GI 启动顺序 操作系统启动ohasd —》

使用SQL*Plus生产CSV格式数据

使用SQL*Plus生产CSV格式数据 #工程师培训 #sqlplus# 因为Excel、很多BI工具、甚至一些数据库,都支持直接导入CSV(comma separated value)格式数据,所以一直以来,我们都有将Oracle数据库中表的数据行导出成为CSV格式的需求。从Oracle 12.2.0.1开始,SQL*Plus支持将查询输出为CSV格式。本文对此新特性进行演示。 演示环境 [SQL*Plus] CREATE TABLE BOOKS (
 BOOK_ID NUMBER GENERATED ALWAYS AS IDENTITY,
 TITLE VARCHAR2(250) NOT NULL,
 PAGES NUMBER NOT NULL,
 AUTHOR VARCHAR2(250) NOT NULL,
 CONDITION VARCHAR2(4000),
 CONSTRAINT BOOKS_PK PRIMARY KEY (BOOK_ID),
 CONSTRAINT BOOKS_UQ UNIQUE (TITLE)
);
 
[SQL*Plus] INSERT INTO BOOKS (TITLE, PAGES, AUTHOR, CONDITION) VALUES ('The Hobbit', 322, 'J.

检查Oracle redo log切换频率的SQL

这个SQL的特点是模拟日历(Calendar)形式,显示每小时产生的redo log数量: SELECT * FROM (SELECT A.* FROM (SELECT * FROM (SELECT TO_DATE(b.date_time, 'DD/MM/YYYY') dt,TO_CHAR(TO_DATE(b.date_time, 'DD/MM/YYYY'), 'DAY') DAY,"00", "01", "02", "03", "04", "05", "06", "07", "08", "09","10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", TOTALFROM (SELECT date_time,SUM(DECODE(HOUR,'00',1,NULL)) "00", SUM(DECODE(HOUR,'01',1,NULL)) "01", SUM(DECODE(HOUR,'02',1,NULL)) "02",SUM(DECODE(HOUR,'03',1,NULL)) "03", SUM(DECODE(HOUR,'04',1,NULL)) "04", SUM(DECODE(HOUR,'05',1,NULL)) "05",SUM(DECODE(HOUR,'06',1,NULL)) "06", SUM(DECODE(HOUR,'07',1,NULL))