{ "info": { "author": "seekplum", "author_email": "1131909224m@sina.cn", "bugtrack_url": null, "classifiers": [], "description": "==================\nGenerate Captcha\n==================\n\n* \u57fa\u4e8e\u7b2c\u4e09\u65b9\u5e93 ``Pillow`` \u751f\u6210\u9a8c\u8bc1\u7801\u56fe\u7247\n* \u6ce8\u610f\uff1a \u82e5\u4e0d\u6307\u5b9a\u5b57\u4f53\u7c7b\u578b\uff0c\u9700\u8981\u628a\u6587\u4ef6\u4e2d\u7684 ``msyh.ttf`` \u62f7\u8d1d\u5230\u7cfb\u7edf\u5b57\u4f53\u5e93\u4e2d\n\n\n---------\n\u521b\u5efa\u753b\u7b14\n---------\n\n.. code-block:: python\n\n draw = ImageDraw.Draw(img) # \u521b\u5efa\u753b\u7b14\n\n----------\n\u589e\u52a0\u5e72\u6270\u7ebf\n----------\n\n.. code-block:: python\n\n def create_lines():\n \"\"\"\u7ed8\u5236\u5e72\u6270\u7ebf\n \"\"\"\n line_num = random.randint(*n_line) # \u5e72\u6270\u7ebf\u6761\u6570\n\n for i in range(line_num):\n # \u8d77\u59cb\u70b9\n begin = (random.randint(0, size[0]), random.randint(0, size[1]))\n # \u7ed3\u675f\u70b9\n end = (random.randint(0, size[0]), random.randint(0, size[1]))\n draw.line([begin, end], fill=(0, 0, 0))\n----------\n\u589e\u52a0\u5e72\u6270\u70b9\n----------\n\n.. code-block:: python\n\n def create_points():\n \"\"\"\u7ed8\u5236\u5e72\u6270\u70b9\n \"\"\"\n chance = min(100, max(0, int(point_chance))) # \u5927\u5c0f\u9650\u5236\u5728[0, 100]\n\n for w in range(width):\n for h in range(height):\n tmp = random.randint(0, 100)\n if tmp > 100 - chance:\n draw.point((w, h), fill=(0, 0, 0))\n\n-----------------\n\u7ed8\u5236\u9a8c\u8bc1\u7801\u5b57\u7b26\n-----------------\n\n.. code-block:: python\n\n def create_text(xy_, font_type_):\n \"\"\"\u7ed8\u5236\u9a8c\u8bc1\u7801\u5b57\u7b26\n \"\"\"\n c_chars = get_chars()\n text_ = '%s' % ' '.join(c_chars) # \u6bcf\u4e2a\u5b57\u7b26\u524d\u540e\u4ee5\u7a7a\u683c\u9694\u5f00\n if font_type_ is None:\n curr_path = os.path.dirname(os.path.abspath(__file__))\n font_type_ = os.path.join(os.path.dirname(curr_path), \"packages\", \"msyh.ttf\")\n font = ImageFont.truetype(font_type_, font_size)\n if xy_ is None:\n font_width, font_height = font.getsize(text_)\n xy_ = ((width - font_width) / 3, (height - font_height) / 3) # \u5de6\u53f3\u8ddd\u79bb/\u4e0a\u4e0b\u8ddd\u79bb\n draw.text(xy_, text_, font=font, fill=fg_color)\n\n return ''.join(c_chars)\n\n---------\n\u4fdd\u5b58\u56fe\u7247\n---------\n\n.. code-block:: python\n\n # \u56fe\u7247\u8def\u5f84\n file_name_ = file_name if file_name else text\n file_name = \"{}.{}\".format(file_name_, suffix)\n file_path = os.path.join(image_path, file_name)\n img.save(file_path)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/seekplum/generate_captcha", "keywords": "Pil", "license": "GPL-3.0", "maintainer": "", "maintainer_email": "", "name": "generate_captcha", "package_url": "https://pypi.org/project/generate_captcha/", "platform": "any", "project_url": "https://pypi.org/project/generate_captcha/", "project_urls": { "Homepage": "https://github.com/seekplum/generate_captcha" }, "release_url": "https://pypi.org/project/generate_captcha/0.0.4/", "requires_dist": null, "requires_python": "", "summary": "Generate verification code based on Pil library.", "version": "0.0.4" }, "last_serial": 3724305, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f0d6286b16e3a4acfa18efb398cc2a4f", "sha256": "5f478b34c702138c370fe11bfe3feb3f8dd06e176beef8ba0d392671fafdd6de" }, "downloads": -1, "filename": "generate_captcha-0.0.1.zip", "has_sig": false, "md5_digest": "f0d6286b16e3a4acfa18efb398cc2a4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8194, "upload_time": "2018-03-28T11:55:51", "url": "https://files.pythonhosted.org/packages/52/57/e42ed73392a869e5f6493997335a1a181352cb3aa94805987fb4157e6ce6/generate_captcha-0.0.1.zip" } ], "0.0.1.1": [ { "comment_text": "", "digests": { "md5": "6a7fff34b0cb231e14e850cb58ec5fc3", "sha256": "6089293694cd8365d99eaff17388f356445963b44118ca240f3bea7afcccc820" }, "downloads": -1, "filename": "generate_captcha-0.0.1.1.tar.gz", "has_sig": false, "md5_digest": "6a7fff34b0cb231e14e850cb58ec5fc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4053, "upload_time": "2018-03-28T12:02:58", "url": "https://files.pythonhosted.org/packages/b7/29/d43268d91f13fd49fc06dca73fc878883d9062263ba7075e9e214e46e6d5/generate_captcha-0.0.1.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "93d1f256dbec6b12915a30bae91218a4", "sha256": "fd469c565b69d66c87f94b55875cf8744e909a4bb08132a75f1f204bf73bb6a0" }, "downloads": -1, "filename": "generate_captcha-0.0.2.tar.gz", "has_sig": false, "md5_digest": "93d1f256dbec6b12915a30bae91218a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9209227, "upload_time": "2018-04-01T09:21:42", "url": "https://files.pythonhosted.org/packages/71/2f/f6562b35a2f72e5b477f59786ed54b149f6b81118cbc854e3beac586ce71/generate_captcha-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "21b3a5d8290fd1709f83a75f0a6f5a88", "sha256": "e7b7ea64cbb49cca7361edca097d5083ed6525767b12f2ab89535b83fa2c856f" }, "downloads": -1, "filename": "generate_captcha-0.0.3.tar.gz", "has_sig": false, "md5_digest": "21b3a5d8290fd1709f83a75f0a6f5a88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4509, "upload_time": "2018-04-01T13:15:29", "url": "https://files.pythonhosted.org/packages/8e/42/d2e5c24226556a218e90ee0b0c1a06483ef59a6896215ad2541b9963d93e/generate_captcha-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "ddafef82e76e60f63121ddecd1a0eda0", "sha256": "6c01a0460c8acbdd268acba11eb2d3239f65f86cebb6d55effcf93ac5e312018" }, "downloads": -1, "filename": "generate_captcha-0.0.4.tar.gz", "has_sig": false, "md5_digest": "ddafef82e76e60f63121ddecd1a0eda0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9211986, "upload_time": "2018-04-01T14:19:42", "url": "https://files.pythonhosted.org/packages/36/48/67112ba6b4d6b2182e7ec5c88c6cdc182432940a9b6788284d2bc77909e1/generate_captcha-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ddafef82e76e60f63121ddecd1a0eda0", "sha256": "6c01a0460c8acbdd268acba11eb2d3239f65f86cebb6d55effcf93ac5e312018" }, "downloads": -1, "filename": "generate_captcha-0.0.4.tar.gz", "has_sig": false, "md5_digest": "ddafef82e76e60f63121ddecd1a0eda0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9211986, "upload_time": "2018-04-01T14:19:42", "url": "https://files.pythonhosted.org/packages/36/48/67112ba6b4d6b2182e7ec5c88c6cdc182432940a9b6788284d2bc77909e1/generate_captcha-0.0.4.tar.gz" } ] }