python将图片裁剪成九宫格

要求:将图片裁剪成九宫格,宫格图片位置打乱

思路:

  1. 判断该图片长宽是否能被3整除,不能需要对图片进行裁剪(我的是边角裁剪)
  2. 双重for循环,根据步长对图片数组进行切片达到裁剪效果
  3. random.shuffle()达到图片位置打乱的效果
  4. 使用np.concatenate()对图片数组按维拼接

代码:

第三方库

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import random
import math

判断函数

def judge(img, n=9):x = int(math.sqrt(n))w, h, _ = img.shapeif w % x:w = (w // x) * xif h % x:h = (h // x) * xreturn w, h 

裁剪拼接函数

def crop_nine(new_image):shape_w, shape_h, _ = new_image.shapepatch_w = shape_w // 3patch_h = shape_h // 3patch = []for w in range(0, shape_w, patch_w):for h in range(0, shape_h, patch_h):patch.append(new_image[w:w+patch_w, h:h+patch_h, :])random.shuffle(patch)img_1 = np.concatenate((patch[0], patch[1], patch[2]), axis=0)img_2 = np.concatenate((patch[3], patch[4], patch[5]), axis=0)img_3 = np.concatenate((patch[6], patch[7], patch[8]), axis=0)img = np.concatenate((img_1, img_2, img_3), axis=1)return img

运行部分:

image_path = "dog.jpg"
img = np.array(Image.open(image_path))
w, h = judge(img)
new_image = img[:w, :h, :]
new_image = crop_nine(new_image)
plt.imshow(new_image)

效果:

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/250723.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

九宫格拼图怎么拼?分享两个简单的操作

日常生活中发朋友圈的时候,小伙伴是不是有很多照片想分享到朋友圈呢?但是因为朋友圈的限制,不能一次全发。有很多朋友发现很多朋友可以把一张图片剪成9格!看起来很棒,那九宫格拼图怎么拼的呢?今天就和大家分…

九宫格图片怎么操作?这里有你想要的方法

不知道平时小伙伴们在发朋友圈的时候有没有注意过很多人的朋友圈都会将很多图片拼起来,凑成九宫格图片来发送。这是因为朋友圈的限制,无法一次发完,每次最大上传只有9长照片。所以就有很多朋友一次拼齐9个图片在一起实现发布更多的图片&#…

四张图片如何合成一张四宫格?

对很多小伙伴来说,图片是自己日常生活和工作中不可或缺的一部分,图片可以以最快的速度记录事物的最真实原始的状态,大家也可以通过图片来给自己的生活留些记号。而在使用这些图片的过程中,很多时候都需要将四张图片合成一个四宫格…

如何将图片拼接成九宫格?

在日常生活中,经常会看到九宫格的图片拼接样式,那么大家知道自己怎么操作能够快速的将图片拼接成九宫格形状吗?接下来教大家使用找图设计网站的**拼图**https://www.zhaotu.com/pintu/功能,在线制作九宫格拼图的操作方法&#xff…

css图片九宫格布局

我在这里分享一下用flex布局实现的图片自适应九宫格布局。 首先&#xff0c;每个图片的宽度要给到刚好一排放下三个&#xff0c;所有的图片放在大盒子div里面&#xff0c;flex布局&#xff0c;具体看代码 <div id"box"><img src"0.jpg" ><…

PS制作九宫格图片

&#xff08;撰写时间&#xff1a;2019年6月6号星期四 作者&#xff1a;邱锡纶&#xff09;九宫格图片在网上比较流行的一种图片模式&#xff0c;所以我在课余时间也去摸索了一下这种九宫格图片的制作步骤&#xff0c;下面来和你们分享一下九宫格图片的制造方法吧&a…

代码写个九宫格布局显示图片

不在xml中设置布局&#xff0c;在代码中直接写个布局&#xff0c;显示下载的图片&#xff0c;如下图所示&#xff0c;图片有点丑 XML中添加个linearLayout <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http:/…

Android图片九宫格

九宫格分三类 实现的效果 具体实现 activity_main

用Python处理图片九宫格

本篇阅读时间约为 5 分钟。文/咪哥杂谈 1 前言 在日常的生活中&#xff0c;大家偶尔会看到朋友圈发的照片由一张被切成九张的效果&#xff0c;有时由一张照片被切成九张照片所带来的视觉盛宴是不一样的&#xff01; 现在许多 P 图工具里面自带了这种功能&#xff0c;而微信小程…

Android 九宫格布局(图片上传、预览)

前言&#xff1a; 利用RecyclerView展示朋友圈UI布局&#xff0c;包含展示、预览、删除等功能 效果图 1、在项目app\build.gradle添加依赖 //图片加载implementation com.github.bumptech.glide:glide:4.8.0//初始化控件找IDimplementation com.jakewharton:butterknife:10…

unity3d 中场景不显示了

应该是把Layers下面的Nothing打开了

python九宫格图片的原理~

原理 1、用Python制作的九宫格图像生成器包装exe文件&#xff0c;用户无需部署安装Python的开发环境&#xff0c;即可在当地运行该程序&#xff0c;快速生成九宫格图像。 2、用PIL库不断画小区域&#xff0c;切下来存储成新的小图片。 实例 假设每一个格子的宽和高分别是w、…

用纯css实现一个图片拼接九宫格

<style> body{ margin: 0; padding: 0; // 设定居中 display: flex; justify-content: center; align-items: center; height: 100vh; } .container{ width: 300px; height: 300px; display: flex; // 子盒子布局&#xff0c;要让子盒子之间有间隙就把宽高设大一些。 jus…

九宫格

一、定义 什么叫.9.PNG呢&#xff0c;这是安卓开发里面的一种特殊的图片 这种格式的图片在android 环境下具有自适应调节大小的能力。 &#xff08;1&#xff09;允许开发人员定义可扩展区域&#xff0c;当需要延伸图片以填充比图片本身更大区域时&#xff0c;可扩展区的内容被…

自定义九宫格图片

注&#xff1a;此Demo只是为了学习自定义相关知识&#xff0c;不建议在项目中引用使用. 已实现功能&#xff1a; 1.可设置每行显示的列数、删除图标、加号图片、设置padding&#xff0c;删除图标与图片的间距&#xff0c; 行和列的间距以及删除图标的大小; 2.match_parent模式…

基础复习——图形定制——图形Drawable——形状图形——九宫格图片——状态列表图形...

Drawable类型表达了各种各样的图形&#xff0c;包括图片、色块、画板、背景等。 包含图片在内的图形文件放在res目录的各个drawable目录下&#xff0c;其中drawable目录一般保存描述性的XML文件&#xff0c;而图片文件一般放在具体分辨率的drawable目录下。 各视图的background…

html用九张图片做出九宫图,用ps如何将九张照片做成九宫格?

如何用PS将九张照片做成九宫格&#xff0c;并且随时可以更换呢。下面跟搞设计一起来做一下吧。 ↑ 首先准备好九张照片 ↑ 打开PS&#xff0c;新建一个1000x1000的文件 ↑ 选择矩形工具 ↑ 创建一个300x300的矩形 ↑ 随便填个颜色&#xff0c;把图层命名为1 ↑ 选择视图-新建参…

Grid 布局实现九宫格图片动画

前言 &#x1f44f;Grid 布局实现九宫格&#xff0c;background-position设置背景图像起始位置&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义css变量&#xff1a;九宫格中每个宫格的长/宽为w&#xff0c…

九宫格拼图

九宫格拼图的实现&#xff1a; 效果为下图所示&#xff0c;实现拼图的完成&#xff0c;这里附上完整的代码&#xff0c;需要注意的是在产生随机的初始状态时&#xff0c;是随机两两交换&#xff0c;才能保证其一直是1-9的这样的情况&#xff0c;其他具体响应的设计在程序注释中…

【Android】-- 图形(形状图形、状态列表图形、九宫格图片)

一、图形Drawable Drawable类型表达了各种各样的图形&#xff0c;包括图片、色块、画板、背景等。 包含图片在内的图形文件放在res目录的各个drawable目录下&#xff0c;其中drawable目录一般保存描述性的XML文件&#xff0c;而图片文件一般放在具体分辨率的drawable目录下。…