52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
|
|
# python-gphoto2 - Python interface to libgphoto2
|
|
# http://github.com/jim-easterbrook/python-gphoto2
|
|
# Copyright (C) 2015-22 Jim Easterbrook jim@jim-easterbrook.me.uk
|
|
#
|
|
# This file is part of python-gphoto2.
|
|
#
|
|
# python-gphoto2 is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License as
|
|
# published by the Free Software Foundation, either version 3 of the
|
|
# License, or (at your option) any later version.
|
|
#
|
|
# python-gphoto2 is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with python-gphoto2. If not, see
|
|
# <https://www.gnu.org/licenses/>.
|
|
|
|
import logging
|
|
import locale
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
import gphoto2 as gp
|
|
|
|
def main():
|
|
locale.setlocale(locale.LC_ALL, '')
|
|
logging.basicConfig(
|
|
format='%(levelname)s: %(name)s: %(message)s', level=logging.WARNING)
|
|
callback_obj = gp.check_result(gp.use_python_logging())
|
|
camera = gp.Camera()
|
|
camera.init()
|
|
print('Capturing image')
|
|
file_path = camera.capture(gp.GP_CAPTURE_IMAGE)
|
|
print('Camera file path: {0}/{1}'.format(file_path.folder, file_path.name))
|
|
target = os.path.join('/tmp', file_path.name)
|
|
print('Copying image to', target)
|
|
camera_file = camera.file_get(
|
|
file_path.folder, file_path.name, gp.GP_FILE_TYPE_NORMAL)
|
|
camera_file.save(target)
|
|
subprocess.call(['xdg-open', target])
|
|
camera.exit()
|
|
return 0
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|