{"id":680,"date":"2019-08-07T20:09:20","date_gmt":"2019-08-07T20:09:20","guid":{"rendered":"http:\/\/li-yang.cn\/?p=680"},"modified":"2019-08-07T20:09:20","modified_gmt":"2019-08-07T20:09:20","slug":"%e5%88%a9%e7%94%a8python%e7%9a%84pil%e5%ba%93%e7%bb%99%e7%85%a7%e7%89%87%e6%89%b9%e9%87%8f%e5%8a%a0%e6%b0%b4%e5%8d%b0","status":"publish","type":"post","link":"https:\/\/li-yang.cn\/?p=680","title":{"rendered":"\u5229\u7528Python\u7684PIL\u5e93\u7ed9\u7167\u7247\u6279\u91cf\u52a0\u6c34\u5370"},"content":{"rendered":"\n<p>\u51fa\u4e8e\u65e0\u804a\uff0c\u7528\u4e86\u534a\u5c0f\u65f6\u5199\uff08Copy\uff09\u4e86\u4e00\u4e2a\u7ed9\u7167\u7247\u81ea\u52a8\u52a0\u6c34\u5370\u7684\u811a\u672c\u3002\u5927\u6982\u529f\u80fd\u5c31\u662f\u5c06\u7279\u5b9a\u7167\u7247\u5728\u53f3\u4e0b\u89d2\u6dfb\u52a0\u65f6\u95f4\u3001\u5c3a\u5bf8\u3001GPS\u4fe1\u606f\uff08\u65e0\u4eba\u673a\u6216\u8005\u624b\u673a\u6709\uff09\u548c\u7248\u6743\u4fe1\u606f\u3002\u5f53\u7136\uff0c\u8fd8\u4e0d\u591f\u5b8c\u5584\uff0c\u6709\u7a7a\u4e86\u52a0\u4e0a\u8bfb\u53d6\u76ee\u5f55\u4e2d\u6240\u6709JPG\u7684\u529f\u80fd\uff0c\u4ee5\u53ca\u81ea\u9002\u5e94\u5b57\u4f53\u5927\u5c0f\u7684\u529f\u80fd\u3002<\/p>\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">import os\nfrom PIL import Image\nfrom PIL.ExifTags import TAGS\nfrom PIL import ImageFont\nfrom PIL import ImageDraw\ndef get_exif_data(fname):\n    \"\"\"Get embedded EXIF data from image file.\"\"\"\n    ret = {}\n    try:\n        img = Image.open(fname)\n        if hasattr( img, '_getexif' ):\n            exifinfo = img._getexif()\n            if exifinfo != None:\n                for tag, value in exifinfo.items():\n                    decoded = TAGS.get(tag, tag)\n                    ret[decoded] = value\n                    size = img.size\n    except IOError:\n        print('IOERROR ' + fname)\n    return ret,size\ndef addText(fname,text):\n    img = Image.open(fname)\n    draw = ImageDraw.Draw(img)\n    # font = ImageFont.truetype(&lt;font-file&gt;, &lt;font-size&gt;)\n    font = ImageFont.truetype(\"Andale.ttf\", 64)\n    # draw.text((x, y),\"Sample Text\",(r,g,b))\n    draw.text((img.size[0]-img.size[0]\/6,img.size[1]-img.size[1]\/10),text,(255,255,255),font=font)\n    img.save('sample-out.jpg')\n    print('Added text')\nif __name__ == '__main__':\n    fileName = r'\/Users\/li-yang\/Desktop\/DSC04467_1.jpg'\n    copyright = 'Photo by YangLi'\n    exif,size = get_exif_data(fileName)\n    print(exif)\n    size = str(size[0]) +'*'+ str(size[1])\n    if 'DateTimeOriginal' in exif:\n        time = exif['DateTimeOriginal']\n    else:\n        time= 'No Time Info'\n    if 'Model' in exif:\n        model = exif['Model']\n    else:\n        model = 'No Model Info'\n    if 'GPSInfo' in exif:\n        GPS = exif['GPSInfo']\n    else:\n        GPS = 'No GPS Info'\n    text = time +'\\n' + size +'\\n' +GPS+'\\n' +copyright\n    addText(fileName,text)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u51fa\u4e8e\u65e0\u804a\uff0c\u7528\u4e86\u534a\u5c0f\u65f6\u5199\uff08Copy\uff09\u4e86\u4e00\u4e2a\u7ed9\u7167\u7247\u81ea\u52a8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-680","post","type-post","status-publish","format-standard","hentry","category-4"],"_links":{"self":[{"href":"https:\/\/li-yang.cn\/index.php?rest_route=\/wp\/v2\/posts\/680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/li-yang.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/li-yang.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/li-yang.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/li-yang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=680"}],"version-history":[{"count":0,"href":"https:\/\/li-yang.cn\/index.php?rest_route=\/wp\/v2\/posts\/680\/revisions"}],"wp:attachment":[{"href":"https:\/\/li-yang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/li-yang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/li-yang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}