<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>水草树 &#187; Python</title>
	<atom:link href="http://mifunny.info/category/study/python3/feed" rel="self" type="application/rss+xml" />
	<link>http://mifunny.info</link>
	<description>走走停停看看，恍然大悟。</description>
	<lastBuildDate>Sun, 25 Mar 2012 15:09:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>按照自己的方式，去度过人生!</title>
		<link>http://mifunny.info/a-life-just-for-me-324.html</link>
		<comments>http://mifunny.info/a-life-just-for-me-324.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 13:08:08 +0000</pubDate>
		<dc:creator>LD</dc:creator>
				<category><![CDATA[Google热榜]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Study notes]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[かわいい玩具]]></category>
		<category><![CDATA[一半动漫]]></category>
		<category><![CDATA[听听音乐]]></category>
		<category><![CDATA[吹水唬滥]]></category>
		<category><![CDATA[大佛Linux]]></category>
		<category><![CDATA[就评电影]]></category>
		<category><![CDATA[心情札记]]></category>
		<category><![CDATA[时事快评]]></category>
		<category><![CDATA[本民经济]]></category>
		<category><![CDATA[此间Web]]></category>
		<category><![CDATA[漫谈人物]]></category>
		<category><![CDATA[版本控制]]></category>
		<category><![CDATA[疮痍广告]]></category>
		<category><![CDATA[百度风云榜]]></category>
		<category><![CDATA[设计模式]]></category>
		<category><![CDATA[读书时间]]></category>
		<category><![CDATA[软件笑谈]]></category>
		<category><![CDATA[那些技术]]></category>
		<category><![CDATA[人生]]></category>

		<guid isPermaLink="false">http://mifunny.info/a-life-just-for-me-324.html</guid>
		<description><![CDATA[昨晚11点, 第三次读完《明朝那些事儿》, 彻夜未眠. LD 并不是个聪明的人, 前两次均未理解所谓历史 所谓宿命 所谓自由. 这半年, 从09年9月, 第三次读《明》, 完全不同的感受, 石悅的历史观也许是悲观的, 正如他如是说. 然, LD 是悲愤的! 可以活得唯唯缩缩, 可以轰轰烈烈, 也可平平淡淡, 人之所以为人, 就是与别个不同. 10月, LD 曾慕名前往于谦祠, 旁边帅GG 惊呼: 于谦? 谁啊? 好像以前学过&#8230; 是啊~ 我也是. 强人只是那么一瞬间, 那一刻 绽放比凡人璀璨的花火, 之后殒灭为尘秽, 清澈、汙浊平凡无异. 生活的目标 一点足矣, 开心. 礼义廉耻 忠义孝廉 儿戏 儿戏, 二十几年来, 从没有这么坚定, 从没有这么澄净. 引用《火鳳燎原》中那句话: 属于我的这个年代, 将比任何朝代来得久远!]]></description>
			<content:encoded><![CDATA[<p>昨晚11点, 第三次读完《明朝那些事儿》, 彻夜未眠. </p>
<p>LD 并不是个聪明的人, 前两次均未理解所谓历史 所谓宿命 所谓自由. 这半年, 从09年9月, 第三次读《明》, 完全不同的感受, 石悅的历史观也许是悲观的, 正如他如是说. 然, LD 是悲愤的! </p>
<p>可以活得唯唯缩缩, 可以轰轰烈烈, 也可平平淡淡, 人之所以为人, 就是与别个不同. 10月, LD 曾慕名前往于谦祠, 旁边帅GG 惊呼: 于谦? 谁啊? 好像以前学过&#8230;  是啊~ 我也是. 强人只是那么一瞬间, 那一刻 绽放比凡人璀璨的花火, 之后殒灭为尘秽, 清澈、汙浊平凡无异.</p>
<p>生活的目标 一点足矣, 开心. 礼义廉耻 忠义孝廉 儿戏 儿戏, 二十几年来, 从没有这么坚定, 从没有这么澄净. 引用《火鳳燎原》中那句话: 属于我的这个年代, 将比任何朝代来得久远!</p>
]]></content:encoded>
			<wfw:commentRss>http://mifunny.info/a-life-just-for-me-324.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Python连接MySQL &#8211; MySQL邯郸学步</title>
		<link>http://mifunny.info/connect-to-mysql-with-python-296.html</link>
		<comments>http://mifunny.info/connect-to-mysql-with-python-296.html#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:55:41 +0000</pubDate>
		<dc:creator>LD</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[连接]]></category>

		<guid isPermaLink="false">http://mifunny.info/connect-to-mysql-with-python-296.html</guid>
		<description><![CDATA[使用Python并不能直接连接MySQL， 必须安装mysql-python软件包。对于Arch， 只需要 sudo pacman -Sy mysql-python 安装完连接库，直接调用就是，剩下的简单，就和其他语言操作数据库的形式相差无几.下面给出一个例子, 想了解更多，请在py终端打入help #!/usr/bin/env python # -*-coding:UTF-8-*- import MySQLdb conn = MySQLdb.Connection(db_host, db_user, db_passwd, db_name) cur = conn.cursor() # 执行SQL语句 cur.execute('SET NAMES utf8') conn.commit() # 查询 sql = "SELECT COUNT(*) FROM tbl_test" cur.execute(sql) row = cur.fetchone() # 执行存储过程 cur.callproc('CALL testPro()') conn.commit() cur.close() # FILE END. dp.SyntaxHighlighter.ClipboardSwf = 'http://mifunny.info/site/google-syntax-highlighter/Scripts/clipboard.swf'; dp.SyntaxHighlighter.HighlightAll('code');]]></description>
			<content:encoded><![CDATA[<p style="text-indent: 2em;">使用Python并不能直接连接MySQL， 必须安装mysql-python软件包。对于Arch， 只需要 sudo pacman -Sy mysql-python </p>
<p><span id="more-296"></span></p>
<p>安装完连接库，直接调用就是，剩下的简单，就和其他语言操作数据库的形式相差无几.下面给出一个例子, 想了解更多，请在py终端打入help </p>
<link rel="stylesheet" href="http://mifunny.info/site/google-syntax-highlighter/Styles/SyntaxHighlighter.css" type="text/css" media="screen" />
<pre name="code" class="python">

#!/usr/bin/env python
# -*-coding:UTF-8-*-
import MySQLdb

conn = MySQLdb.Connection(db_host, db_user, db_passwd, db_name)
cur = conn.cursor()

# 执行SQL语句
cur.execute('SET NAMES utf8')
conn.commit()

# 查询
sql = "SELECT COUNT(*) FROM tbl_test"
cur.execute(sql)
row = cur.fetchone()

# 执行存储过程
cur.callproc('CALL testPro()')
conn.commit()

cur.close()

# FILE END.
</pre>
<p><script type="text/javascript" src="http://mifunny.info/site/google-syntax-highlighter/Scripts/shCore.js"></script><br />
<script type="text/javascript" src="http://mifunny.info/site/google-syntax-highlighter/Scripts/shBrushPython.js"></script><br />
<script type="text/javascript">
dp.SyntaxHighlighter.ClipboardSwf = 'http://mifunny.info/site/google-syntax-highlighter/Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://mifunny.info/connect-to-mysql-with-python-296.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>直接发送Trackback的3组代码</title>
		<link>http://mifunny.info/the-three-group-code-of-send-trackback-directly-231.html</link>
		<comments>http://mifunny.info/the-three-group-code-of-send-trackback-directly-231.html#comments</comments>
		<pubDate>Tue, 24 Feb 2009 14:00:51 +0000</pubDate>
		<dc:creator>LD</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[那些技术]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[trackback]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[直接发送]]></category>

		<guid isPermaLink="false">http://mifunny.info/the-three-group-code-of-send-trackback-directly-231.html</guid>
		<description><![CDATA[Trackback是什么，自己看 TrackBack &#8211; 維基百科。 直接发送Trackback 可以干什么，自己想（不要作恶）。以下分享3种不同语言 直接发送Trackback的代码片断。 3种语言分别是 Python、PHP、ASP.net， 如果你直接运行这些脚本，期望发送至不同的博客，那么你肯定会很失望，这些只是例子，并且不完整; 我也不会把如何搭建可运行环境的过程写出来，请自己Google。 1. PHP版 (运行需要 pear，依赖Services_Trackback， Services_Trackback依赖HTTP_Request2， HTTP_Request2依赖Net_URL2 ) &#60;?php $trackbackData = array( 'title' =&#62; 'Trackback Test', 'excerpt' =&#62; 'Where is my frends? ...', 'url' =&#62; 'http://mifunny.info/friends', 'blog_name' =&#62; 'My Blog', 'trackback_url' =&#62; 'http://mifunny.info/how-to-obtain-the-flow-of-foreign-brush-google-adsense-229.html/trackback' ); // include class include "Services/Trackback.php"; // initialize new instance $trackback = [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 122px"><a href="http://picasaweb.google.com/lh/photo/NxLIXKfU-UB-cFpCmaan_Q?authkey=PXXQ0nyEJ3M&#038;feat=embedwebsite"><img title="Open Trackback Friend（点击进入相册观看大图）" src="http://lh4.ggpht.com/_Th1ctZq-HFA/SaP4khN27jI/AAAAAAAABbo/X9twhS3aIu0/s144/OpenTrackbackFriday34.jpg" alt="Open Trackback Friend" width="112" height="144" /></a><p class="wp-caption-text">Open Trackback Friend</p></div>
<p style="text-indent: 2em;">Trackback是什么，自己看 <a rel="external" href="http://zh.wikipedia.org/wiki/TrackBack">TrackBack &#8211; 維基百科</a>。 直接发送Trackback 可以干什么，自己想（不要作恶）。以下分享3种不同语言 直接发送Trackback的代码片断。 </p>
<p style="text-indent: 2em;">3种语言分别是 Python、PHP、ASP.net， 如果你直接运行这些脚本，期望发送至不同的博客，那么你肯定会很失望，这些只是例子，并且不完整; 我也不会把如何搭建可运行环境的过程写出来，请自己Google。 </p>
<p><span id="more-231"></span></p>
<link rel="stylesheet" href="http://mifunny.info/site/google-syntax-highlighter/Styles/SyntaxHighlighter.css" type="text/css" media="screen" />
<strong>1. PHP版 </strong>(运行需要 pear，依赖Services_Trackback， Services_Trackback依赖HTTP_Request2， HTTP_Request2依赖Net_URL2 )</p>
<pre name="code" class="php">
&lt;?php
$trackbackData = array(
    'title'     =&gt; 'Trackback Test',
    'excerpt'   =&gt; 'Where is my frends? ...',
    'url'       =&gt; 'http://mifunny.info/friends',
    'blog_name' =&gt; 'My Blog',
    'trackback_url' =&gt; 'http://mifunny.info/how-to-obtain-the-flow-of-foreign-brush-google-adsense-229.html/trackback'
);

// include class
include "Services/Trackback.php";

// initialize new instance
$trackback = new Services_Trackback();

// set object properties
foreach ($trackbackData as $k =&gt; $v) {
  $trackback-&gt;set($k, $v);
}

// send trackback
$ret = $trackback-&gt;send();
if (PEAR::isError($ret)) {
  echo "ERROR. Trackback failed because: " . $ret-&gt;getMessage();
} else {
  echo "Trackback successfully posted";
}
?&gt;
</pre>
<p>&nbsp; <br />
<strong>2. Python版 </strong>(需要 tblib函数库 )</p>
<pre name="code" class="python">
import tblib
tblib.TrackBack()
tb.autodiscover('http://mifunny.info/how-to-obtain-the-flow-of-foreign-brush-google-adsense-229.html/trackback')
print tb.tbUrl
tb.blog_name = 'My Weblog'
tb.title = 'Trackback Test'
tb.url = 'http://mifunny.info/friends'
tb.excerpt = 'Where is my frends? ...'
tb.ping()
print tb.tbErrorCode
</pre>
<p>&nbsp; <br />
<strong>3. ASP.net版 </strong>(LD不懂ASP，仅仅列出代码)</p>
<pre name="code" class="java">
        //// 作 用：向指定的URL发送Trackback Ping，并根据服务器端返回的信息，提示用户处理情况。参数必须Server.URLEncode
        ///目标URL，也即所引用的blog所提供的引用地址
        ///我的Blog的URL
        ///我的blog站点名称
        ///当前这篇blog的标题
        ///当前这篇blog的摘要
        /// 返回结果：字符串，以“|”分隔，第一部分为数字，0表示成功，1表示有错；第二部分是具体信息。
        public static int Send(string RemoteUrl, string MyBlogURL, string MyBlogName, string MyBlogTitle, string MyBlogExcerpt)
        {
            // 构造要发送的请求内容
            try
            {
                string strPostInfo = “title=” + MyBlogTitle;
                strPostInfo += “&#038;url=” + MyBlogURL;
                strPostInfo += “&#038;excerpt=” + MyBlogExcerpt;
                strPostInfo += “&#038;blog_name=” + MyBlogName;

                byte[] strs = System.Text.Encoding.Default.GetBytes(strPostInfo);

                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(RemoteUrl);

                myRequest.Method = “POST”;
                myRequest.ContentType = “application/x-www-form-urlencoded”;
                myRequest.ContentLength = strs.Length;
                Stream newStream = myRequest.GetRequestStream();
                // 发送数据
                newStream.Write(strs, 0, strs.Length);
                newStream.Close();
                return 1;
            }
            catch (System.Exception es)
            {
                return 0;
            }
        }
</pre>
<p><script type="text/javascript" src="http://mifunny.info/site/google-syntax-highlighter/Scripts/shCore.js"></script><br />
<script type="text/javascript" src="http://mifunny.info/site/google-syntax-highlighter/Scripts/shBrushPhp.js"></script><br />
<script type="text/javascript" src="http://mifunny.info/site/google-syntax-highlighter/Scripts/shBrushPython.js"></script><br />
<script type="text/javascript" src="http://mifunny.info/site/google-syntax-highlighter/Scripts/shBrushJava.js"></script><br />
<script type="text/javascript">
dp.SyntaxHighlighter.ClipboardSwf = 'http://mifunny.info/site/google-syntax-highlighter/Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=c7d3cc3b-8f0a-4e12-a695-0e935c702af6" /></div>
]]></content:encoded>
			<wfw:commentRss>http://mifunny.info/the-three-group-code-of-send-trackback-directly-231.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Python文件备份脚本更新，加入mysql数据库备份</title>
		<link>http://mifunny.info/python-backup-script-for-files-and-mysql-74.html</link>
		<comments>http://mifunny.info/python-backup-script-for-files-and-mysql-74.html#comments</comments>
		<pubDate>Thu, 31 Jul 2008 14:29:00 +0000</pubDate>
		<dc:creator>LD</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[大佛Linux]]></category>

		<guid isPermaLink="false">http://mifunny.info/?p=74</guid>
		<description><![CDATA[前言： 写这篇文章前，思考了XX久，原因很简单，这篇东西没人看，这个东西除了我也没人用，所以使用说明书就免了。 于是可以写点别的，QQ for Linux今早发布,可以写点评论，NO！ n多人会写; 没事，还有个叫 中文版如何做爱 的Very恶搞 and 极度幽默的开源项目，But！ 时间不对。…… 其实还有还多，比如《全名黑客》发誓要将小黑精神进行到底！ 前言的小结： 总结了莫须有的，回顾了后天会美好的憧憬，我决定==》开写！ 正文开始： backup_py_20080731.tar.bz2是python写的文件备份脚本，配合cron可以备份指定的文件，mysql数据库，删除过期的日志。这个脚本最早是在学python时动笔的，其间修修补补的估计有一年了，成了现在这个样子。从程序的角度，十分丑陋，从实用的角度也就马马虎虎过得去这样。可是我还是不断的修改，写这篇文文，无它，好几次系统崩溃都是考它备份出来的东西还原的，也算是功臣了。所以写给自己看则个。 唠唠叨叨一大堆，OK。handbook begin 首先，它分成两个文件： backedit.py 通过它可以查看修改备份文件列表; backup.py 主角，执行它才能完成备份（你得授予可执行权限） 其实很简单，backedit.py负责设定那些东西要备份，cron调用backup.py给那些文件打包，O了^_^ 。 那么先来解释一下backedit.py 一、 backedit.py一共可用的参数是5个： backedit.py default 恢复默认设置 backedit.py show 查看备份列表 backedit.py help 显示此页面 backedit.py add [parameter] [...] 添加备份路径 backedit.py del [number] [...] 通过编号删除多余路径 文件backedit.py中的第18行设定备份文件最终安放的地点（变量backup_path），需要和backup.py中的一致。56行是默认的备份文件列表，一般linux系统上都有。 举个例子，我要添加 /etc/httpd 和 /home/user/.bashrc 这两个备份路径可以 python [...]]]></description>
			<content:encoded><![CDATA[<p style="text-indent: 4mm"><b>前言：</b>    写这篇文章前，思考了XX久，原因很简单，这篇东西没人看，这个东西除了我也没人用，所以使用说明书就免了。 于是可以写点别的，<a href="http://im.qq.com/qq/linux/download.shtml" title ="QQ for Linux" alt="QQ for Linux">QQ for Linux</a>今早发布,可以写点评论，NO！ n多人会写; 没事，还有个叫 <a href="http://code.google.com/p/chtml/" title="中国人自己的超文本标记语言" alt="A Chinese version for HTML" ><i>中文版如何做爱</i></a> 的Very恶搞 and 极度幽默的开源项目，But！ 时间不对。…… 其实还有还多，比如<a href="http://www.cnbeta.com/article.php?sid=61273" title="《环球时报》:英专家称中国支持“网络恐怖主义”" >《全名黑客》发誓要将小黑精神进行到底！</a> </p>
<p style="text-indent: 4mm"><b>前言的小结：</b>    总结了莫须有的，回顾了后天会美好的憧憬，我决定==》开写！</p>
<p style="text-indent: 4mm">正文开始：   <a href="http://nothing-at-all.googlecode.com/files/backup_py_20080731.tar.bz2" title="Python 文件备份脚本" alt="python file mysql log script backup">backup_py_20080731.tar.bz2</a>是python写的文件备份脚本，配合cron可以备份指定的文件，mysql数据库，删除过期的日志。这个脚本最早是在学python时动笔的，其间修修补补的估计有一年了，成了现在这个样子。从程序的角度，十分丑陋，从实用的角度也就马马虎虎过得去这样。可是我还是不断的修改，写这篇文文，无它，好几次系统崩溃都是考它备份出来的东西还原的，也算是功臣了。所以写给自己看则个。</p>
<p style="text-indent: 2mm">唠唠叨叨一大堆，OK。handbook begin 首先，它分成两个文件： <br />    backedit.py  通过它可以查看修改备份文件列表;<br />    backup.py  主角，执行它才能完成备份（你得授予可执行权限）<br />  其实很简单，backedit.py负责设定那些东西要备份，cron调用backup.py给那些文件打包，O了^_^ 。 那么先来解释一下backedit.py</p>
<p><span id="more-74"></span></p>
<p style="text-indent: 2mm"><strong>一、 backedit.py</strong>一共可用的参数是5个： <br / />    backedit.py default 恢复默认设置<br / />    backedit.py show 查看备份列表<br / />    backedit.py help 显示此页面<br / />    backedit.py add [parameter] [...] 添加备份路径<br / />    backedit.py del [number] [...] 通过编号删除多余路径<br />  文件backedit.py中的第18行设定备份文件最终安放的地点（变量backup_path），需要和backup.py中的一致。56行是默认的备份文件列表，一般linux系统上都有。 举个例子，我要添加 /etc/httpd 和 /home/user/.bashrc  这两个备份路径可以<br />
<table style="border:2px solid #E0E0E0; background-color: #BFF0FF;" border="0">
<tbody>
<tr>
<td>python  backedit.py  add  /etc/httpd  /home/user/.bashrc</td>
</tr>
</tbody>
</table>
<p>然后删除 /etc/fonts 和 /etc/inittab 这两个路径（backedit.py show可以看到路径的ID）<br />
<table style="border:2px solid #E0E0E0; background-color: #BFF0FF;" border="0">
<tbody>
<tr>
<td>python  backedit.py  del  3  1</td>
</tr>
</tbody>
</table>
<p>数据库文件是地址backup_path下的backup.list 。</p>
<p style="text-indent: 2mm">接下来加入root用户的cron任务计划表中（其他用户也可），执行 sudo  crontab  -e 后，如下编辑,表示每个星期五、日的20、22点进行备份。<br />
<table style="border:2px solid #E0E0E0; background-color: #BFF0FF;" border="0">
<tbody>
<tr>
<td>
#    minute    hour    day    month    dow    command<br />    01    20,22    *    *    5,0    /opt/script/backup.py</td>
</tr>
</tbody>
</table>
<p>可以参考: <a href="http://www.ibm.com/developerworks/cn/linux/l-job-scheduling.html" alt="Linux 技巧: 用cron 和at 调度作业">Linux 技巧: 用cron 和at 调度作业</a>，好了只剩mysql数据库备份和删logs了，痛！</p>
<p><font size="0" color="#4D4D4D"></p>
<p style="text-indent: 6mm">（PS~_~1：小脚趾刚刚被削掉了层皮，shit！该死的木门，十几年都没事，今天才向我发威; 还好没去献血，不然极有可能流血过量 <img src='http://mifunny.info/blog/wp-includes/images/smilies/icon_cry.gif' alt=':cry:' class='wp-smiley' />  ）</p>
<p style="text-indent: 6mm">（PS~_~2：QQ for Linux的rpm包中的license竟是GPL，狂汗）</p>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://mifunny.info/python-backup-script-for-files-and-mysql-74.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Python图片批量水印脚本</title>
		<link>http://mifunny.info/python-image-watermark-script-68.html</link>
		<comments>http://mifunny.info/python-image-watermark-script-68.html#comments</comments>
		<pubDate>Thu, 24 Jul 2008 08:11:33 +0000</pubDate>
		<dc:creator>LD</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[watermark]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[水印]]></category>

		<guid isPermaLink="false">http://mifunny.info/?p=68</guid>
		<description><![CDATA[冒着波涛汹涌的电压，机子断电重启n次(n>15)的艰难条件，终于&#8221;乒乒乓乓&#8221;的敲出了这个给图片批量加水印的小脚本。&#8221;呼￥%…￥#￥#&#038;×￥%%￥&#8221; 吐出一口长长的浊气， 这种天气，冰箱比不上井水，空调比不上蒲扇，知了还叫个不停，到晚上田鸡还接着扯…… OK，我抱怨完了，可以介绍这个脚本了 虽然WordPress已经有自动给图片加水印的插件了(呦呦~~~就是这个super image tools), 而且这个东西牛X到不行，连远程图片也可以轻松搞定; 但就是不符合我的口味，Why？大哥辛苦了，小弟很勤奋，每张图片我都要亲自照顾一下。 以前写过一个简单的Python图片处理程序，现在权当复习一下。 这个批处理脚本功能很简单，只有三个： 给图片添加TEXT水印 添加logo图片水印 生成图片的缩略图 当然，可以根据自己的需求修改脚本里定义的变量。执行很简单，大部分设置在脚本里： python watermark.py [input-image-path] [METHOD] (脚本里已经指定METHOD，就不必加了) 比如：我要把把家目录下Pictures里的图片都加上文字水印（文字和水印位置在脚本中定义），那么可以这么执行： python watermark.py /home/user/Pictures 1 (方法1是文字水印，2为logo图片水印，3为缩略图) 文件名： watermark_py_20080724.tar.bz2下载地址： http://code.google.com/p/nothing-at-all/downloads/list我只在linux上测试过， 下面是示例：]]></description>
			<content:encoded><![CDATA[<p style="text-indent: 4mm">冒着波涛汹涌的电压，机子断电重启n次(n>15)的艰难条件，终于&#8221;乒乒乓乓&#8221;的敲出了这个给图片批量加水印的小脚本。&#8221;呼￥%…￥#￥#&#038;×￥%%￥&#8221; 吐出一口长长的浊气， 这种天气，冰箱比不上井水，空调比不上蒲扇，知了还叫个不停，到晚上田鸡还接着扯…… OK，我抱怨完了，可以介绍这个脚本了</p>
<p style="text-indent: 4mm">虽然WordPress已经有自动给图片加水印的插件了(呦呦~~~就是这个<a href="http://www.pkphp.com/2008/06/08/wordpress-image-super-tools/" title="wordpress图片水印+远程图片下载插件super image tools" alt="wordpress图片水印+远程图片下载插件super image tools" >super image tools</a>), 而且这个东西牛X到不行，连远程图片也可以轻松搞定; 但就是不符合我的口味，Why？大哥辛苦了，小弟很勤奋，每张图片我都要亲自照顾一下。 <img src='http://mifunny.info/blog/wp-includes/images/smilies/icon_evil.gif' alt=':evil:' class='wp-smiley' />  以前写过一个简单的<a href="http://mifunny.info/my-python-image-app-47.html" title="我的python图像处理程序"  alt="python 图像 image 程序" >Python图片处理程序</a>，现在权当复习一下。</p>
<p style="text-indent: 4mm">这个批处理脚本功能很简单，只有三个：
<ol>
<li>给图片添加TEXT水印</li>
<li>添加logo图片水印</li>
<li>生成图片的缩略图</li>
</ol>
<p>当然，可以根据自己的需求修改脚本里定义的变量。执行很简单，大部分设置在脚本里：<br />
<table style="border:2px solid #E0E0E0; background-color: #BFF0FF;" border="0">
<tbody>
<tr>
<td>python  watermark.py  [input-image-path]  [METHOD] <br />(脚本里已经指定METHOD，就不必加了)</td>
</tr>
</tbody>
</table>
<p>比如：我要把把家目录下Pictures里的图片都加上文字水印（文字和水印位置在脚本中定义），那么可以这么执行：<br />
<table style="border:2px solid #E0E0E0; background-color: #BFF0FF;" border="0">
<tbody>
<tr>
<td>python  watermark.py  /home/user/Pictures  1 <br />(方法1是文字水印，2为logo图片水印，3为缩略图)</td>
</tr>
</tbody>
</table>
<p style="text-indent: 4mm">文件名： watermark_py_20080724.tar.bz2<br />下载地址： http://code.google.com/p/nothing-at-all/downloads/list<br />我只在linux上测试过， 下面是示例：</p>
<p><span id="more-68"></span><br />
<div class="wp-caption aligncenter" style="width: 460px"><a href="http://lh3.ggpht.com/kldscs/SIgk3gzAy7I/AAAAAAAAATw/X0iy78NsOYI/s800/fangfei.jpg"><img class="frame" alt="放飞广场 未加水印 原图" src="http://lh3.ggpht.com/kldscs/SIgk3gzAy7I/AAAAAAAAATw/X0iy78NsOYI/s800/fangfei.jpg" title="原图 未加水印" width="450" height="338" /></a><p class="wp-caption-text">未加水印前的原图</p></div></p>
<div class="wp-caption aligncenter" style="width: 460px"><a href="http://lh5.ggpht.com/kldscs/SIgoj4Cx_SI/AAAAAAAAAT8/bBX6FtCBRm0/s800/fangfei_watermark.jpg"><img class="frame" alt="放飞广场 文字 水印" src="http://lh5.ggpht.com/kldscs/SIgoj4Cx_SI/AAAAAAAAAT8/bBX6FtCBRm0/s800/fangfei_watermark.jpg" title="文字水印" width="450" height="338" /></a><p class="wp-caption-text">文字水印</p></div>
<div class="wp-caption aligncenter" style="width: 460px"><a href="http://lh6.ggpht.com/kldscs/SIgk3S6IzzI/AAAAAAAAATg/jO1dzOVP7Pc/s800/fangfei_watermark2.jpg"><img class="frame" alt="放飞广场 logo 图片 水印 " src="http://lh6.ggpht.com/kldscs/SIgk3S6IzzI/AAAAAAAAATg/jO1dzOVP7Pc/s800/fangfei_watermark2.jpg" title="logo图片水印" width="450" height="338" /></a><p class="wp-caption-text">logo图片水印 </p></div>
<div class="wp-caption aligncenter" style="width: 757px"><a href="http://lh4.ggpht.com/kldscs/SIgk3rNxjVI/AAAAAAAAATo/cXB1DyRYo2k/s800/logo.png"><img alt="水草树 mifunny logo" src="http://lh4.ggpht.com/kldscs/SIgk3rNxjVI/AAAAAAAAATo/cXB1DyRYo2k/s800/logo.png" title="水草树的logo" width="60%" /></a><p class="wp-caption-text">水草树的logo</p></div>
]]></content:encoded>
			<wfw:commentRss>http://mifunny.info/python-image-watermark-script-68.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>我的python图像处理程序</title>
		<link>http://mifunny.info/my-python-image-app-47.html</link>
		<comments>http://mifunny.info/my-python-image-app-47.html#comments</comments>
		<pubDate>Sat, 31 May 2008 05:33:00 +0000</pubDate>
		<dc:creator>LD</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://mifunny.info/my-python-image-app-47.html</guid>
		<description><![CDATA[之前我一直坚信：人品总有大爆发的一天。 那么可能就是在今天。的确世界是很小的，去年学了点python，所以当数字图像老师布置课程设计时，我就用python写了。然而回家前不小心一个rm命令干掉了所有的东东，而今天一学长因为做毕业设计的关系把我的程序从老师的那堆烂光盘中找了出来，失而复得,呵呵^_^ 其实这个程序很简单，主要是把给出的医学图像中的外壁去除，可以看程序的截图: 本程序需要的环境： python 2.5 http://www.python.org/ wxpython 2.8 http://www.wxpython.org/ Python Image Library 1.1.6 http://www.pythonware.com/ 关于 PIL(Python Image Library )函数库的注释: PIL 是 Python 下最有名的影像处理套件,由许多不同的模块所组成,并且提供了许多的处理功能,允许我们在简单的 Python 程序里进行影像的处理。 使用像 PIL 这样的程序库套件可以帮助我们把精力集中在影像处理的工作本身,避免迷失在底层的算法里面。由于影像处理牵涉到了大量的数学运算,因此 PIL 中有許多的模块是用 C 语言所写成的,以提升处理的效率。 记得当时要求完成批处理，所以干脆设一个外壁的厚度值，竟然比使用膨胀和腐蚀效果明显，处理速度快，适合大部分图片（单个文件可以修改厚度值），意想不到。批处理时运行函数库文件即可（python的特性哦） python funlib.py A 图片路径(必须有写权限) 下面是批处理后的效果图： 文件名: source_mifunny.zip 压缩包里的myimage.py是GUI程序，直接运行即可，pic目录下是待处理的医学图像。]]></description>
			<content:encoded><![CDATA[<p style="text-indent: 4mm">之前我一直坚信：人品总有大爆发的一天。 那么可能就是在今天。的确世界是很小的，去年学了点python，所以当数字图像老师布置课程设计时，我就用python写了。然而回家前不小心一个rm命令干掉了所有的东东，而今天一学长因为做毕业设计的关系把我的程序从老师的那堆烂光盘中找了出来，失而复得,呵呵^_^</p>
<p style="text-indent: 4mm">其实这个程序很简单，主要是把给出的医学图像中的外壁去除，可以看程序的截图:</p>
<p><a href="http://lh3.ggpht.com/kldscs/SEDCkX3Nm3I/AAAAAAAAAPU/x9jkdz4eFjA/s800/2008-05-31-110718_1024x768_scrot.png" target="_blank"><img class="frame" title="点击查看大图" src="http://lh3.ggpht.com/kldscs/SEDCkX3Nm3I/AAAAAAAAAPU/x9jkdz4eFjA/s400/2008-05-31-110718_1024x768_scrot.png" alt="python 医学图像 处理程序" /></a></p>
<p style="text-indent: 4mm">本程序需要的环境：</p>
<ol>
<li>python 2.5  <br />http://www.python.org/</li>
<li>wxpython 2.8  <br />http://www.wxpython.org/</li>
<li>Python Image Library 1.1.6  <br />http://www.pythonware.com/  <br />
关于 PIL(Python Image Library )函数库的注释:  <br />
PIL 是 Python 下最有名的影像处理套件,由许多不同的模块所组成,并且提供了许多的处理功能,允许我们在简单的 Python 程序里进行影像的处理。  使用像 PIL 这样的程序库套件可以帮助我们把精力集中在影像处理的工作本身,避免迷失在底层的算法里面。由于影像处理牵涉到了大量的数学运算,因此 PIL 中有許多的模块是用 C 语言所写成的,以提升处理的效率。</li>
</ol>
<p style="text-indent: 4mm">记得当时要求完成批处理，所以干脆设一个外壁的厚度值，竟然比使用膨胀和腐蚀效果明显，处理速度快，适合大部分图片（单个文件可以修改厚度值），意想不到。批处理时运行函数库文件即可（python的特性哦）</p>
<table style="border:2px solid #E0E0E0; background-color: #BFF0FF;" border="0">
<tbody>
<tr>
<td>python  funlib.py  A  图片路径(必须有写权限)</td>
</tr>
</tbody>
</table>
<p><span id="more-47"></span></p>
<p style="text-indent: 4mm">下面是批处理后的效果图：</p>
<p><a href="http://lh4.ggpht.com/kldscs/SEDCkn3Nm5I/AAAAAAAAAPk/N05gbV4kFDc/s800/2008-05-31-111113_691x318_scrot.png" target="_blank"><img title="点击查看大图"  class="frame" src="http://lh4.ggpht.com/kldscs/SEDCkn3Nm5I/AAAAAAAAAPk/N05gbV4kFDc/s400/2008-05-31-111113_691x318_scrot.png" alt="python 医学图像 处理程序" align="middle" /></a><br />
<img style="border: 0pt none; vertical-align: middle;" src="http://lh5.ggpht.com/kldscs/SEDbZ33Nm8I/AAAAAAAAAP8/YEGZaGqzdZs/s144/20080527114145908.png"     alt="向下 箭头" width="64" height="64" /><br />
<a href="http://lh3.ggpht.com/kldscs/SEDCkX3Nm4I/AAAAAAAAAPc/OlhjQUSv0T8/s800/2008-05-31-111041_692x316_scrot.png" target="_blank"><img title="点击查看大图"    class="frame"  src="http://lh3.ggpht.com/kldscs/SEDCkX3Nm4I/AAAAAAAAAPc/OlhjQUSv0T8/s400/2008-05-31-111041_692x316_scrot.png" alt="python 医学图像 处理程序" align="middle" /></a></p>
<p style="text-indent: 4mm">文件名: <a title="python图像处理程序" href="http://cn.ziddu.com/downloadfile/258129/source_mifunny.info.zip.html">source_mifunny.zip</a><br />
压缩包里的myimage.py是GUI程序，直接运行即可，pic目录下是待处理的医学图像。</p>
]]></content:encoded>
			<wfw:commentRss>http://mifunny.info/my-python-image-app-47.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

