{ "info": { "author": "keul", "author_email": "luca@keul.it", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Plone", "Framework :: Plone :: 4.3", "Programming Language :: JavaScript", "Programming Language :: Python" ], "description": "This product use super-modern browser feature for **accessing the user's webcam** (if any) to directly save a\nnew portrait photo inside Plone personal preferences.\n\n.. contents::\n\nHow it works\n============\n\nJust add the product to your buildout and activate the *collective.takeaportrait* add-on.\n\nAfter that you will probably see a new button inside your \"*Personal Information*\" labeled \"*Take a photo*\". \nIf you don't see any new button your browser will probably not support Media Capture API.\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-01.png\n :alt: alternate text\n :align: center\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-02.png\n :alt: alternate text\n :align: left\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-03.png\n :alt: alternate text\n :align: right\n\nWhen pressing the button the browser will ask you the permission to access the Webcam and you must accept\nto continue. The security request format is vendor specific.\n\nWhen confirmed you will see the new portrait overlay, where the webcam is activated and the output stream\nis directly on your browser.\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-04.jpg\n :alt: alternate text\n :align: center\n\nYou have two possible actions: close the window or take a photo. In the latter case a delay counter will be\ndisplayed on the left (you can raise or lower the delay using the range control, from 0 to 10 seconds).\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-05.jpg\n :alt: alternate text\n :align: center\n\nNote: only the image part inside the highlight yellow section (the viewfinder) will be used as a new portrait.\nYou can move the viewfinder by drag and drop with the mouse (not working on mobile right now).\n\nAfter every shot taken, you can look at a preview of the image, and repeat the operation until you get a nice\nportrait.\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-07.jpg\n :alt: alternate text\n :align: center\n\nFinally, you can save the new portrait in the user's preferences. The image in the form will be immediately\nupdated from the server.\n\n.. image:: http://keul.it/images/plone/collective.takeaportrait/collective.takeaportrait-0.1.0-08.png\n :alt: alternate text\n :align: center\n\nFace detection\n--------------\n\nThe product contains a **face detection** support, that can automatically center the viewfinder on any\nrecognized face.\n\nDefault implementation rely onto the `OpenCV, Computer Vision Library`__ (that must be installed\non your Python env) and must be explicitly activated::\n\n [instance]\n ...\n zcml=\n ...\n collective.takeaportrait.opencv\n\n__ http://docs.opencv.org/\n\n.. Note::\n This feature in deeply experimental, a proof-of-concept not ready from production environment.\n \n See `Plone, HTML 5 Canvas and Face Detection with Webcam`__ article for more.\n\n__ http://blog.keul.it/2014/02/plone-html-5-canvas-and-face-detection.html\n\nIf you manually move the viewfinder, the auto-center feature based on face detection will be stopped.\n\nPlone integration\n=================\n\nAs customizing the user preference form is something I don't like very much, this product is adding new features\nonly using pure JavaScript.\n\nTested on Plone 4.3.\n\nBrowsers support\n================\n\nThe user's browser must support `HTML Media Capture API`__ so only recent and cool browser can be used:\n\n* Firefox: tested with Firefox 25\n* Chrome: tested with Chrome 30 (a little slow, but works)\n* Opera: tested with Opera Next, version 18\n* Safari: no support (c'mon Apple...)\n* Internet Explorer: support is expected for Internet Explorer 31 [1]_\n\nTo know if your browser is supported, see the `Can I Use`__ Web site.\n\n__ http://www.w3.org/TR/html-media-capture/\n__ http://caniuse.com/stream\n\nMobile\n------\n\n* Safari on iOS: no support \n* Android Browser (Android 4.2.2): no support\n* Chrome on Android: tested with Chrome 32\n* Firefox: on version 27 camera seems to work but something goes wrong\n\n.. [1] Microsoft said that probably the Media Capture support will be delayed to Internet Explorer 36 in case\n Patent War VI against Kilrathi race on Tau Ceti will not over on time.\n\nChangelog\n=========\n\n0.2.0 (2014-02-20)\n------------------\n\n- Viewfinder can now be dragged for optimal face position\n [keul]\n- Face detection support (super-experimental)\n [keul]\n\n0.1.0 (2013-11-10)\n------------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://plone.org/products/collective.takeaportrait", "keywords": "plone webcam portrait media-capture-api", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.takeaportrait", "package_url": "https://pypi.org/project/collective.takeaportrait/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.takeaportrait/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://plone.org/products/collective.takeaportrait" }, "release_url": "https://pypi.org/project/collective.takeaportrait/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "Plone site members can change personal portrait using a webcam", "version": "0.2.0" }, "last_serial": 3430625, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d28697540bc98a505a535887ca9c7ea3", "sha256": "57713573ae83cd71d3ea2aa7cbb649628c71f62d2ac06eb9022507733f9abe50" }, "downloads": -1, "filename": "collective.takeaportrait-0.1.0.zip", "has_sig": false, "md5_digest": "d28697540bc98a505a535887ca9c7ea3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32659, "upload_time": "2013-11-10T20:31:02", "url": "https://files.pythonhosted.org/packages/89/f7/77b22b9ee65eba62438eb6851ccb3b80c581c309b7c2edfba88cd9b51268/collective.takeaportrait-0.1.0.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "be6c0bff430708e2ee398e18fe4abed7", "sha256": "85e2ae02dc56ee33b9b6dd228c27858f80ad0f7d9cb60b75cdd18bf1900829a8" }, "downloads": -1, "filename": "collective.takeaportrait-0.2.0.zip", "has_sig": false, "md5_digest": "be6c0bff430708e2ee398e18fe4abed7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143551, "upload_time": "2014-02-20T21:38:35", "url": "https://files.pythonhosted.org/packages/02/99/43b4a5321a2bcd8903a22bc3079950f3f54f5b76bf0da0a9fb7b56d20898/collective.takeaportrait-0.2.0.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "be6c0bff430708e2ee398e18fe4abed7", "sha256": "85e2ae02dc56ee33b9b6dd228c27858f80ad0f7d9cb60b75cdd18bf1900829a8" }, "downloads": -1, "filename": "collective.takeaportrait-0.2.0.zip", "has_sig": false, "md5_digest": "be6c0bff430708e2ee398e18fe4abed7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143551, "upload_time": "2014-02-20T21:38:35", "url": "https://files.pythonhosted.org/packages/02/99/43b4a5321a2bcd8903a22bc3079950f3f54f5b76bf0da0a9fb7b56d20898/collective.takeaportrait-0.2.0.zip" } ] }