使用 Python 切割圖片

  剛好我有張 PNG 圖片需要均勻切割,剛好我不會 PhotoShop,剛好我想用 Python 來練練手。

  于是擼袖子碼腳本。

import os
from PIL import Imagedef splitimage(src, rownum, colnum, dstpath):img = Image.open(src)w, h = img.sizeif rownum <= h and colnum <= w:print('Original image info: %sx%s, %s, %s' % (w, h, img.format, img.mode))print('開始處理圖片切割, 請稍候...')s = os.path.split(src)if dstpath == '':dstpath = s[0]fn = s[1].split('.')basename = fn[0]ext = fn[-1]num = 0rowheight = h // rownumcolwidth = w // colnumfor r in range(rownum):for c in range(colnum):box = (c * colwidth, r * rowheight, (c + 1) * colwidth, (r + 1) * rowheight)img.crop(box).save(os.path.join(dstpath, basename + '_' + str(num) + '.' + ext), ext)num = num + 1print('圖片切割完畢,共生成 %s 張小圖片。' % num)else:print('不合法的行列切割參數!')src = input('請輸入圖片文件路徑:')
if os.path.isfile(src):dstpath = input('請輸入圖片輸出目錄(不輸入路徑則表示使用源圖片所在目錄):')if (dstpath == '') or os.path.exists(dstpath):row = int(input('請輸入切割行數:'))col = int(input('請輸入切割列數:'))if row > 0 and col > 0:splitimage(src, row, col, dstpath)else:print('無效的行列切割參數!')else:print('圖片輸出目錄 %s 不存在!' % dstpath)
else:print('圖片文件 %s 不存在!' % src)

  然后執行。

  恩,確實很簡單。Python 的庫實在很強大,也很好用。我居然有些不想用 Delphi 寫小工具了:)

轉載于:https://www.cnblogs.com/ecofast/p/5487926.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457929.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457929.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457929.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python數據分析知識點_Python數據分析--Pandas知識點(三)

本文主要是總結學習pandas過程中用到的函數和方法, 在此記錄, 防止遺忘. 下面將是在知識點一, 二的基礎上繼續總結. 前面所介紹的都是以表格的形式中展現數據, 下面將介紹Pandas與Matplotlib配合繪制出折線圖, 散點圖, 餅圖, 柱形圖, 直方圖等五大基本圖形. Matplotlib是python…

SPI通訊協議

SPI&#xff1a;高速同步串行口。是一種標準的四線同步雙向串行總線。 SPI&#xff0c;是英語Serial Peripheral interface的縮寫&#xff0c;顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM&#xff0c;FLASH&#x…

基于MVVM的知乎日報應用安卓源碼

使用data binding , dagger2 , retrofit2和rxjava實現的&#xff0c;基于MVVM的知乎日報APP運行效果&#xff1a; <ignore_js_op> 使用說明&#xff1a; 項目結構android data binding來實現MVVM。dagger2來完成依賴注入。retrofit2rxjava實現restful的http請求。第三方類…

F#創建者Don Syme談F#設計原則

在.Net Fringe 2016大會上&#xff0c;F#創建者Don Syme談了他對F#現狀的看法以及F#的二元性。F#是以一個為面向對象語言構建的運行時為基礎構建的函數式語言。\\F#是2010年發布的&#xff0c;遵循開源許可協議。F#比.Net更早地踏上了開源之路&#xff0c;C#和.Net在2015年才開…

php簽入html出來的影響seo嗎_搜索引擎優化_SEO必備6大技能+SEO誤區講解!

大家好&#xff0c;我是逆冬&#xff0c;今天來分享一下實戰SEO需要掌握什么樣的技能以及SEO知識誤區&#xff0c;本篇文章僅代表逆冬本人幾年的經驗、不見得適合每一個SEOer!下面就讓逆冬本人來分析一下實戰型SEO到底需要掌握什么技能。第1點&#xff1a;SEO需要不需要熟練掌握…

編寫linux驅動程序步驟

一、建立Linux驅動框架&#xff08;裝載、卸載Linux驅動&#xff09; Linux內核在使用驅動時首先要裝載驅動&#xff0c;在裝載過程中進行一些初始化動作&#xff08;建立設備文件、分配內存等&#xff09;&#xff0c;在驅動程序中需提供相應函數來處理驅動初始化工作&#xf…

一種M2M業務的架構及實現M2M業務的方法

http://www.cnblogs.com/coryxie/p/3849764.html 技術領域 [0001] 本發明涉及通信技術領域&#xff0c;尤其涉及一種M2M業務的架構及實現M2M業務的方法。 背景技術 [0002] 隨著通信技術的飛速發展以及通信技術與互聯網技術的進一步融合&#xff0c;移動業務以及移動互聯網技術普…

第二章 mybatis使用注解實現in查詢(mysql)

mybatis實現in查詢&#xff0c;兩種方法&#xff1a; xml形式&#xff08;推薦&#xff09;注解方式&#xff08;個人喜歡注解&#xff0c;但是in場景可能不太適合注解&#xff09;代碼&#xff1a; 1 Select("<script>" 2 "SELECT ID…

python面試代碼題_python面試基礎篇80題

1.為什么學習python?3.Python和Java、PHP、C、C#、C等其他語言的對比&#xff1f; C語言由于其底層操作特性和歷史的積累&#xff0c;在嵌入式領域是當之無愧的王者。 PHP跨平臺&#xff0c;性能優越&#xff0c;跟linux/unix結合比跟windows結合性能強45%,開發成本低,php5已經…

主設備號與次設備號以及申請

一個字符設備或者塊設備都有一個主設備號和次設備號。主設備號和次設備號統稱為設備號。主設備號用來表示一個特定的驅動程序。次設備號用來表示使用該驅動程序的各設備。例如一個嵌入式系統&#xff0c;有兩個LED指示燈&#xff0c;LED燈需要獨立的打開或者關閉。那么&#xf…

javascript 變量作用域

為什么80%的碼農都做不了架構師&#xff1f;>>> javascript中的變量的作用域不同于java/c的變量規則。 1、在java/c中&#xff0c;如果有一個全局變量與一個局部變量重名&#xff0c;那么在局部變量的作用域中&#xff0c;局部變量會覆蓋掉全局變量的值。當離開局部…

七月算法--12月機器學習在線班-第五次課筆記—回歸

七月算法--12月機器學習在線班-第五次課筆記—回歸 七月算法&#xff08;julyedu.com&#xff09;12月機器學習在線班學習筆記 http://www.julyedu.com 轉載于:https://www.cnblogs.com/sweet-dew/p/5491271.html

集合添加元素python_Python基礎:列表、字典、元組、集合、添加和刪除元素,增刪...

列表&#xff08;有序&#xff09; 添加 list.append(元素)&#xff1a;在列表末尾添加新的元素 list.extend(seq)&#xff1a;在列表末尾一次性追加另一個序列中的多個值 –seq可以是列表、元組、字典&#xff0c;若為字典,則僅會將鍵(key)作為元素依次添加至原列表的末尾。 l…

file_operations結構體分析 (設備文件的操作)

linux設備驅動中file_operations結構體分析 struct module *owner第一個 file_operations 成員根本不是一個操作; 它是一個指向擁有這個結構的模塊的指針. 這個成員用來在它的操作還在被使用時阻止模塊被卸載. 幾乎所有時間中, 它被簡單初始化為 THIS_MODULE, 一個在 <Linux…

公司網絡搭建及×××到公司配置

一、公司路由器及子網配置公司192.168.1.0/24子網用于服務器集群&#xff0c;192.168.0.0/24子網用于辦公子網&#xff0c;兩個子網物理上不在一塊。公司開業時&#xff0c;申請了電信40Mbps專線光纖&#xff0c;5個IP地址&#xff0c;網關&#xff1a;*.168.112.9 255.255.25…

js——全選框 checkbox

一直會碰見input 全選框的問題&#xff0c;先整理一種情況&#xff1a; 1. <input id"selectAll" type"checkbox" />全選 2. <input typecheckbox idid1 namecb value1 />value1 <input typecheckbox idid2 namecb value2 />value2 &…

手機編寫python程序_Python實現自動上京東搶手機

本文實例為大家分享了Python自動上京東搶手機的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下 上次搶榮耀V9&#xff0c;被京東給惡心到了&#xff0c;所以就寫了個簡單的Python來自動搶V9。雖然用的是比較蠢的方法&#xff0c;但覺得還是有可以學習的地方。所以在這…

struct cdev結構體和cdev_init和cdev_add函數

在Linux內核2.6版本以前&#xff0c;注冊一個字符設備的的經典方法是使用register_chrdev&#xff0c;相應的從設備中注銷字符設備的方法是unregister_chrdev&#xff0c;而在2.6版本以后&#xff0c;字符設備函數的注冊與注銷使用的是如下一套方法&#xff1a; #include<li…

藍鷗零基礎學習HTML5第五講 CSS的基礎樣式

藍鷗零基礎學習HTML5第五講 CSS的基礎樣式1.border<!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>Document</title><style>div {width:0px;height:0px;/*background: url("img/1.jpg…

class_create()函數

內核中定義了struct class結構體&#xff0c;一個struct class 結構體類型變量對應一個類&#xff0c;內核同時提供了class_create()函數&#xff0c;可以用它來創建一個類&#xff0c;這個類存放于sysfs下面&#xff0c;一旦創建了這個類&#xff0c;再調用device_create()函數…