Могу ли я экспортировать базу данных фотографий Shotwell, сохраняющую все теги?

полная информация:

how-to-retrieve-and-change-partitions-universalally-unique-identifier-uuid-on-linux

14
задан 19 December 2010 в 06:49

60 ответов

Я основатель Йорба, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, то другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию «Write tags, titles и другие метаданные в файлы фотографий» в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. Http://yorba.org/shotwell/install/#source) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабре).

22
ответ дан 25 May 2018 в 23:54
  • 1
    +1 Я новый пользователь Shotwell; спасибо за всю вашу прекрасную работу. – msw 26 December 2010 в 06:44
  • 2
    Работает ли мета-тег «на лету» с обратной связью? – hultqvist 25 March 2011 в 12:28
  • 3
    @hultqvist, да, я только что проверил этот вариант, и сейчас он начал писать его ко всем моим фотографиям – some user 19 October 2015 в 23:09

Я основатель Йорба, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, то другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию «Write tags, titles и другие метаданные в файлы фотографий» в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. Http://yorba.org/shotwell/install/#source) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабре).

22
ответ дан 25 July 2018 в 22:43

Я основатель Йорба, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, то другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию «Write tags, titles и другие метаданные в файлы фотографий» в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. Http://yorba.org/shotwell/install/#source) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабре).

22
ответ дан 26 July 2018 в 23:59

Я основатель Йорба, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, то другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию «Write tags, titles и другие метаданные в файлы фотографий» в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. Http://yorba.org/shotwell/install/#source) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабре).

22
ответ дан 31 July 2018 в 10:41

Я основатель Йорба, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, то другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию «Write tags, titles и другие метаданные в файлы фотографий» в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. Http://yorba.org/shotwell/install/#source) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабре).

22
ответ дан 31 July 2018 в 11:45

Я основатель Йорба, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, то другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию «Write tags, titles и другие метаданные в файлы фотографий» в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. Http://yorba.org/shotwell/install/#source) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабре).

22
ответ дан 2 August 2018 в 04:09

Я основатель Йорбы, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию « Запись тегов, заголовков и других метаданных в файлы фотографий » в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. [D0] http://yorba.org/shotwell/install/#source ) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабрь).

22
ответ дан 4 August 2018 в 20:12

Я основатель Йорбы, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию « Запись тегов, заголовков и других метаданных в файлы фотографий » в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. [D0] http://yorba.org/shotwell/install/#source ) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабрь).

22
ответ дан 6 August 2018 в 04:14

Я основатель Йорбы, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию « Запись тегов, заголовков и других метаданных в файлы фотографий » в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. [D0] http://yorba.org/shotwell/install/#source ) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабрь).

22
ответ дан 10 August 2018 в 10:28

Я основатель Йорбы, создатель Шотвелла. Спасибо за ваш вопрос.

Shotwell 0.7 пишет метаданные (например, теги и заголовки) на фотографии при их экспорте. Метаданные записываются в формате EXIF, IPTC и / или XMP (в зависимости от того, с какого из них присутствовали на фотографии). Большинство других фотопрограмм могут читать эти форматы, поэтому, если вы экспортируете свои фотографии из Shotwell, другие программы должны иметь возможность читать свои теги без проблем.

Предстоящий Shotwell 0.8 может записывать метаданные в файлы фотографий на fly - чтобы включить это, выберите опцию « Запись тегов, заголовков и других метаданных в файлы фотографий » в диалоговом окне настроек. Как только это будет выбрано, Shotwell обновит метаданные в файлах фотографий, как только вы пометите их. Чтобы использовать эту функцию, создайте соединительную линию Shotwell из источника (см. [D0] http://yorba.org/shotwell/install/#source ) или просто дождитесь Shotwell 0.8 (который мы планируем выпустить позже в декабрь).

22
ответ дан 13 August 2018 в 16:54
  • 1
    +1 Я новый пользователь Shotwell; спасибо за всю вашу прекрасную работу. – msw 26 December 2010 в 06:44
  • 2
    Работает ли мета-тег «на лету» с обратной связью? – hultqvist 25 March 2011 в 12:28
  • 3
    @hultqvist, да, я только что проверил этот вариант, и сейчас он начал писать его ко всем моим фотографиям – some user 19 October 2015 в 23:09

К сожалению, Shotwell, похоже, сохраняет теги в своей собственной базе данных, а не встраивает их как exif, IPTC или XMP в изображения. Вы можете проверить с помощью exiftool, который можно установить, установив пакет libimage-exiftool-perl, доступный в репозиториях.

libimage-exiftool-perl

использовать команду; exiftool testpicture.jpg, чтобы проверить фотографию с именем testpicture.jpg, которую вы ранее отметили с помощью Shotwell. Вы увидите, что вывод exiftool не содержит тегов Shotwell.

Утилита exiftool может помечать ваши изображения, вставляя теги на фотографию, и хорошая вещь об этом заключается в том, что большинство фотожурналистов будут использовать их, включая Shotwell , Например:

exiftool -keywords=favourite -keywords=family testpicture.jpg

Заменить существующий список ключевых слов двумя новыми ключевыми словами (любимым и семейным).

Когда testpicture.jpg импортируется в Shotwell, изображение будет помечено любимым и family

Может быть полезно знать, что база данных Shotwell представляет собой базу данных sqlite, расположенную в вашем; ~/.shotwell/data и обычно называется photo.db, вы можете скопировать его где-то еще на свой компьютер и получить доступ к нему с помощью sqlite.

Есть несколько интерфейсов GUI для sqlite, есть один для firefox здесь или вы может использовать sqliteman. Оба этих интерфейса имеют экспорт в функции csv; когда вы экспортируете свои теги в csv (Comma Separated Values), вы можете проверить, будет ли какое-либо другое программное обеспечение для управления фотографиями импортировать и сопоставить теги с соответствующим полем в своих собственных базах данных. Я считаю, что Digikam может это сделать.

Надеюсь, что Shotwell получит больше возможностей, эта ситуация изменится.

UPDATE: Хотя верно, что Shotwell 0.7 не сохраняет свои теги на рисунках, созданных этими тегами, теги могут быть встроены в изображения, если вы решите их экспортировать, благодаря Адаму, чтобы сделать это понятным. Надеемся, что этот экспорт без потерь при работе с jpeg. Я подозреваю, что если вы выберите исходный размер для параметра «Масштабирование» в диалоговом окне экспорта.

9
ответ дан 25 May 2018 в 23:54
  • 1
    Во время экспорта, если параметр «Масштабирование» - это «Размер оригинала» и , фотография неотредактирована (без цветовых настроек, обрезки и т. Д.), Она без потерь. Обратите внимание, что изменение ориентации фотографии также без потерь, поскольку мы используем флаг EXIF, а не перекодируем повернутое изображение. – Jim Nelson 22 February 2011 в 00:21
  • 2
    Приятно знать, спасибо – Sabacon 22 February 2011 в 19:19
  • 3
    Я считаю, что вы можете проверить " Напишите теги, заголовки и другие метаданные в файлы фотографий " в настройках Shetwell, чтобы он записывал свои метки в файлы изображений. – JellicleCat 14 March 2015 в 08:16

Быстрый (грязный?) код python для этого, не обновляя Shotwell (я думаю, что с 0.8.x Shotwell может выписывать теги, но вы не можете обновить их до Lucid). Эта вещь будет выписывать звездные рейтинги как теги (комментарий, который бит, очевидно, если вы этого не хотите).

Требуется exiftool. Он будет дублировать любые теги, которые находятся в базе данных shotwell, а также изображения (то есть те, которые Shotwell импортировал при импорте изображений), поэтому следите за этим. Кроме того, требуется довольно много времени для большой коллекции фотографий.

import os
conn = sqlite3.connect("/home/  username  /.shotwell/data/photo.db")

def get_tags():
    return [ x[0] for x in conn.execute("SELECT name FROM TagTable").fetchall()]

def tag_query(tag):
    return conn.execute("SELECT photo_id_list FROM TagTable WHERE name=?", (tag,)).fetchone()[0].split(",")

def get_tagged_photos(tag):
    for id in tag_query(tag):
        result = conn.execute("select filename from PhotoTable where id=?", (id,) ).fetchone()
        if result:
            yield result[0]

def get_photos_by_rating(rating):
    return [photo[0] for photo in conn.execute("select filename from PhotoTable where rating=?",(rating,)).fetchall()]

def get_tagging_commands():
    commands = []
    for rating in range(1,5):
        for photo in get_photos_by_rating(rating):
             commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=rating%d \"%s\""% (rating,photo))

    for tag in [tag for tag in get_tags() if tag != "keep"]:
        for photo in get_tagged_photos(tag):
             commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=%s \"%s\"" % (tag,photo))

    return commands

commands = get_tagging_commands()
for command in commands:
    print command
    os.system(command)
2
ответ дан 25 May 2018 в 23:54

Если вы хотите действительно хороший инструмент / браузер GUI, который позволит вам пометить ваши изображения с помощью тегов Exif (и, следовательно, доступных в Shotwell тоже), я рекомендую jBrout.

Я jBrout .

Чтобы установить его, перейдите в Synaptic, выберите настройки / репозитории, перейдите на вкладку «Другое программное обеспечение», затем нажмите кнопку «Добавить» и вставьте в эту строку: [!d4 ] deb http://jbrout.free.fr/download/debian binary /

Затем перезагрузите и выполните поиск jBrout.

0
ответ дан 25 May 2018 в 23:54

Поскольку ~/.shotwell/data/photo.db идентифицируется как photo.db: SQLite 3.x database по команде файла, я использовал SQLite Database Browser (sqlitebrowser), чтобы открыть его.

Хммм ... вы можете прочитать его :-) У него есть функция экспорта CVS.

Это не обычный подход к графическому интерфейсу, но есть способ.

0
ответ дан 25 May 2018 в 23:54

Я попытался использовать скрипт user38122 для разбора базы данных shotwell, и это не сработало. По-видимому, схема была изменена в последних версиях. Вместо этого я написал следующий скрипт, который использует pandas (который я лично предпочитаю писать SQL) для создания пересечений тегов. В приведенном ниже примере я показываю все изображения, у которых есть как тег «cat», так и «sleep».

#!/usr/bin/python

# An example of how to query the shotwell database with pandas
import sqlite3, pandas, os, time, datetime

con = sqlite3.connect('/home/dov/.local/share/shotwell/data/photo.db')
photo_df = pandas.read_sql("SELECT * from PhotoTable", con)

for c in ['exposure_time','timestamp','time_created']:
  photo_df[c] = photo_df[c].map(datetime.datetime.fromtimestamp)

tag_df = pandas.read_sql('SELECT * from TagTable', con)

def get_image_ids(tag):
  """The image ids are stored morphed in the database as %016x"""
  global tag_df

  return set([int(s.replace('thumb',''),16)
              for s in tag_df[tag_df.name==tag].photo_id_list.iloc[0].split(',')
              if len(s)])

def get_photos(ids):
  """Get the photos for a list of ids"""
  global photo_df
  return photo_df[photo_df.id.isin(ids)].sort(['exposure_time'])

def view_pix(rows):
  cmd = ('eog ' + ' '.join(['"%s"'%row.filename
                            for idx,row in rows.iterrows()]))
#  print cmd
  os.system(cmd)

print 'querying...'

# An example of how to create an intersection of two tags
ids1 = get_image_ids('cat')
ids2 = get_image_ids('sleeping')
rows = get_photos(ids1.intersection(ids2))

# An example of how to filter the rows by timestamp
time_low,time_high = datetime.datetime(2006,8,1),datetime.datetime(2009,1,1)
rows = rows[(rows.exposure_time > time_low)
            & (rows.exposure_time < time_high)]
print '\n'.join([str(ts) for ts in rows['exposure_time']])
view_pix(rows)

print 'done'
0
ответ дан 25 May 2018 в 23:54

Я попытался использовать скрипт user38122 для разбора базы данных shotwell, и это не сработало. По-видимому, схема была изменена в последних версиях. Вместо этого я написал следующий скрипт, который использует pandas (который я лично предпочитаю писать SQL) для создания пересечений тегов. В приведенном ниже примере я показываю все изображения, у которых есть как тег «cat», так и «sleep».

#!/usr/bin/python # An example of how to query the shotwell database with pandas import sqlite3, pandas, os, time, datetime con = sqlite3.connect('/home/dov/.local/share/shotwell/data/photo.db') photo_df = pandas.read_sql("SELECT * from PhotoTable", con) for c in ['exposure_time','timestamp','time_created']: photo_df[c] = photo_df[c].map(datetime.datetime.fromtimestamp) tag_df = pandas.read_sql('SELECT * from TagTable', con) def get_image_ids(tag): """The image ids are stored morphed in the database as %016x""" global tag_df return set([int(s.replace('thumb',''),16) for s in tag_df[tag_df.name==tag].photo_id_list.iloc[0].split(',') if len(s)]) def get_photos(ids): """Get the photos for a list of ids""" global photo_df return photo_df[photo_df.id.isin(ids)].sort(['exposure_time']) def view_pix(rows): cmd = ('eog ' + ' '.join(['"%s"'%row.filename for idx,row in rows.iterrows()])) # print cmd os.system(cmd) print 'querying...' # An example of how to create an intersection of two tags ids1 = get_image_ids('cat') ids2 = get_image_ids('sleeping') rows = get_photos(ids1.intersection(ids2)) # An example of how to filter the rows by timestamp time_low,time_high = datetime.datetime(2006,8,1),datetime.datetime(2009,1,1) rows = rows[(rows.exposure_time > time_low) & (rows.exposure_time < time_high)] print '\n'.join([str(ts) for ts in rows['exposure_time']]) view_pix(rows) print 'done'
0
ответ дан 25 July 2018 в 22:43

Поскольку ~/.shotwell/data/photo.db идентифицируется как photo.db: SQLite 3.x database по команде файла, я использовал SQLite Database Browser (sqlitebrowser), чтобы открыть его.

Хммм ... вы можете прочитать его :-) У него есть функция экспорта CVS.

Это не обычный подход к графическому интерфейсу, но есть способ.

0
ответ дан 25 July 2018 в 22:43

Если вы хотите действительно хороший инструмент / браузер GUI, который позволит вам пометить ваши изображения с помощью тегов Exif (и, следовательно, доступных в Shotwell тоже), я рекомендую jBrout.

Я jBrout .

Чтобы установить его, перейдите в Synaptic, выберите настройки / репозитории, перейдите на вкладку «Другое программное обеспечение», затем нажмите кнопку «Добавить» и вставьте в эту строку:

deb http://jbrout.free.fr/download/debian binary /

Затем перезагрузите и выполните поиск jBrout.

0
ответ дан 25 July 2018 в 22:43

Быстрый (грязный?) код python для этого, не обновляя Shotwell (я думаю, что с 0.8.x Shotwell может выписывать теги, но вы не можете обновить их до Lucid). Эта вещь будет выписывать звездные рейтинги как теги (комментарий, который бит, очевидно, если вы этого не хотите).

Требуется exiftool. Он будет дублировать любые теги, которые находятся в базе данных shotwell, а также изображения (то есть те, которые Shotwell импортировал при импорте изображений), поэтому следите за этим. Кроме того, требуется довольно много времени для большой коллекции фотографий.

import os conn = sqlite3.connect("/home/ username /.shotwell/data/photo.db") def get_tags(): return [ x[0] for x in conn.execute("SELECT name FROM TagTable").fetchall()] def tag_query(tag): return conn.execute("SELECT photo_id_list FROM TagTable WHERE name=?", (tag,)).fetchone()[0].split(",") def get_tagged_photos(tag): for id in tag_query(tag): result = conn.execute("select filename from PhotoTable where id=?", (id,) ).fetchone() if result: yield result[0] def get_photos_by_rating(rating): return [photo[0] for photo in conn.execute("select filename from PhotoTable where rating=?",(rating,)).fetchall()] def get_tagging_commands(): commands = [] for rating in range(1,5): for photo in get_photos_by_rating(rating): commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=rating%d \"%s\""% (rating,photo)) for tag in [tag for tag in get_tags() if tag != "keep"]: for photo in get_tagged_photos(tag): commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=%s \"%s\"" % (tag,photo)) return commands commands = get_tagging_commands() for command in commands: print command os.system(command)
2
ответ дан 25 July 2018 в 22:43

К сожалению, Shotwell, похоже, сохраняет теги в своей собственной базе данных, а не встраивает их как exif, IPTC или XMP в изображения. Вы можете проверить с помощью exiftool, который можно установить, установив пакет libimage-exiftool-perl, доступный в репозиториях.

libimage-exiftool-perl

использовать команду; exiftool testpicture.jpg, чтобы проверить фотографию с именем testpicture.jpg, которую вы ранее отметили с помощью Shotwell. Вы увидите, что вывод exiftool не содержит тегов Shotwell.

Утилита exiftool может помечать ваши изображения, вставляя теги на фотографию, и хорошая вещь об этом заключается в том, что большинство фотожурналистов будут использовать их, включая Shotwell , Например:

exiftool -keywords=favourite -keywords=family testpicture.jpg

Заменить существующий список ключевых слов двумя новыми ключевыми словами (любимым и семейным).

Когда testpicture.jpg импортируется в Shotwell, изображение будет помечено любимым и family

Может быть полезно знать, что база данных Shotwell представляет собой базу данных sqlite, расположенную в вашем; ~/.shotwell/data и обычно называется photo.db, вы можете скопировать его где-то еще на свой компьютер и получить доступ к нему с помощью sqlite.

Есть несколько интерфейсов GUI для sqlite, есть один для firefox здесь или вы может использовать sqliteman. Оба этих интерфейса имеют экспорт в функции csv; когда вы экспортируете свои теги в csv (Comma Separated Values), вы можете проверить, будет ли какое-либо другое программное обеспечение для управления фотографиями импортировать и сопоставить теги с соответствующим полем в своих собственных базах данных. Я считаю, что Digikam может это сделать.

Надеюсь, что Shotwell получит больше возможностей, эта ситуация изменится.

UPDATE: Хотя верно, что Shotwell 0.7 не сохраняет свои теги на рисунках, созданных этими тегами, теги могут быть встроены в изображения, если вы решите их экспортировать, благодаря Адаму, чтобы сделать это понятным. Надеемся, что этот экспорт без потерь при работе с jpeg. Я подозреваю, что если вы выберите исходный размер для параметра «Масштабирование» в диалоговом окне экспорта.

9
ответ дан 25 July 2018 в 22:43
  • 1
    Во время экспорта, если параметр «Масштабирование» - это «Размер оригинала» и , фотография неотредактирована (без цветовых настроек, обрезки и т. Д.), Она без потерь. Обратите внимание, что изменение ориентации фотографии также без потерь, поскольку мы используем флаг EXIF, а не перекодируем повернутое изображение. – Jim Nelson 22 February 2011 в 00:21
  • 2
    Приятно знать, спасибо – Sabacon 22 February 2011 в 19:19
  • 3
    Я считаю, что вы можете проверить & quot; Напишите теги, заголовки и другие метаданные в файлы фотографий & quot; в настройках Shetwell, чтобы он записывал свои метки в файлы изображений. – JellicleCat 14 March 2015 в 08:16

Я попытался использовать скрипт user38122 для разбора базы данных shotwell, и это не сработало. По-видимому, схема была изменена в последних версиях. Вместо этого я написал следующий скрипт, который использует pandas (который я лично предпочитаю писать SQL) для создания пересечений тегов. В приведенном ниже примере я показываю все изображения, у которых есть как тег «cat», так и «sleep».

#!/usr/bin/python # An example of how to query the shotwell database with pandas import sqlite3, pandas, os, time, datetime con = sqlite3.connect('/home/dov/.local/share/shotwell/data/photo.db') photo_df = pandas.read_sql("SELECT * from PhotoTable", con) for c in ['exposure_time','timestamp','time_created']: photo_df[c] = photo_df[c].map(datetime.datetime.fromtimestamp) tag_df = pandas.read_sql('SELECT * from TagTable', con) def get_image_ids(tag): """The image ids are stored morphed in the database as %016x""" global tag_df return set([int(s.replace('thumb',''),16) for s in tag_df[tag_df.name==tag].photo_id_list.iloc[0].split(',') if len(s)]) def get_photos(ids): """Get the photos for a list of ids""" global photo_df return photo_df[photo_df.id.isin(ids)].sort(['exposure_time']) def view_pix(rows): cmd = ('eog ' + ' '.join(['"%s"'%row.filename for idx,row in rows.iterrows()])) # print cmd os.system(cmd) print 'querying...' # An example of how to create an intersection of two tags ids1 = get_image_ids('cat') ids2 = get_image_ids('sleeping') rows = get_photos(ids1.intersection(ids2)) # An example of how to filter the rows by timestamp time_low,time_high = datetime.datetime(2006,8,1),datetime.datetime(2009,1,1) rows = rows[(rows.exposure_time > time_low) & (rows.exposure_time < time_high)] print '\n'.join([str(ts) for ts in rows['exposure_time']]) view_pix(rows) print 'done'
0
ответ дан 26 July 2018 в 23:59

Поскольку ~/.shotwell/data/photo.db идентифицируется как photo.db: SQLite 3.x database по команде файла, я использовал SQLite Database Browser (sqlitebrowser), чтобы открыть его.

Хммм ... вы можете прочитать его :-) У него есть функция экспорта CVS.

Это не обычный подход к графическому интерфейсу, но есть способ.

0
ответ дан 26 July 2018 в 23:59

Если вы хотите действительно хороший инструмент / браузер GUI, который позволит вам пометить ваши изображения с помощью тегов Exif (и, следовательно, доступных в Shotwell тоже), я рекомендую jBrout.

Я jBrout .

Чтобы установить его, перейдите в Synaptic, выберите настройки / репозитории, перейдите на вкладку «Другое программное обеспечение», затем нажмите кнопку «Добавить» и вставьте в эту строку:

deb http://jbrout.free.fr/download/debian binary /

Затем перезагрузите и выполните поиск jBrout.

0
ответ дан 26 July 2018 в 23:59

Быстрый (грязный?) код python для этого, не обновляя Shotwell (я думаю, что с 0.8.x Shotwell может выписывать теги, но вы не можете обновить их до Lucid). Эта вещь будет выписывать звездные рейтинги как теги (комментарий, который бит, очевидно, если вы этого не хотите).

Требуется exiftool. Он будет дублировать любые теги, которые находятся в базе данных shotwell, а также изображения (то есть те, которые Shotwell импортировал при импорте изображений), поэтому следите за этим. Кроме того, требуется довольно много времени для большой коллекции фотографий.

import os conn = sqlite3.connect("/home/ username /.shotwell/data/photo.db") def get_tags(): return [ x[0] for x in conn.execute("SELECT name FROM TagTable").fetchall()] def tag_query(tag): return conn.execute("SELECT photo_id_list FROM TagTable WHERE name=?", (tag,)).fetchone()[0].split(",") def get_tagged_photos(tag): for id in tag_query(tag): result = conn.execute("select filename from PhotoTable where id=?", (id,) ).fetchone() if result: yield result[0] def get_photos_by_rating(rating): return [photo[0] for photo in conn.execute("select filename from PhotoTable where rating=?",(rating,)).fetchall()] def get_tagging_commands(): commands = [] for rating in range(1,5): for photo in get_photos_by_rating(rating): commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=rating%d \"%s\""% (rating,photo)) for tag in [tag for tag in get_tags() if tag != "keep"]: for photo in get_tagged_photos(tag): commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=%s \"%s\"" % (tag,photo)) return commands commands = get_tagging_commands() for command in commands: print command os.system(command)
2
ответ дан 26 July 2018 в 23:59

К сожалению, Shotwell, похоже, сохраняет теги в своей собственной базе данных, а не встраивает их как exif, IPTC или XMP в изображения. Вы можете проверить с помощью exiftool, который можно установить, установив пакет libimage-exiftool-perl, доступный в репозиториях.

libimage-exiftool-perl

использовать команду; exiftool testpicture.jpg, чтобы проверить фотографию с именем testpicture.jpg, которую вы ранее отметили с помощью Shotwell. Вы увидите, что вывод exiftool не содержит тегов Shotwell.

Утилита exiftool может помечать ваши изображения, вставляя теги на фотографию, и хорошая вещь об этом заключается в том, что большинство фотожурналистов будут использовать их, включая Shotwell , Например:

exiftool -keywords=favourite -keywords=family testpicture.jpg

Заменить существующий список ключевых слов двумя новыми ключевыми словами (любимым и семейным).

Когда testpicture.jpg импортируется в Shotwell, изображение будет помечено любимым и family

Может быть полезно знать, что база данных Shotwell представляет собой базу данных sqlite, расположенную в вашем; ~/.shotwell/data и обычно называется photo.db, вы можете скопировать его где-то еще на свой компьютер и получить доступ к нему с помощью sqlite.

Есть несколько интерфейсов GUI для sqlite, есть один для firefox здесь или вы может использовать sqliteman. Оба этих интерфейса имеют экспорт в функции csv; когда вы экспортируете свои теги в csv (Comma Separated Values), вы можете проверить, будет ли какое-либо другое программное обеспечение для управления фотографиями импортировать и сопоставить теги с соответствующим полем в своих собственных базах данных. Я считаю, что Digikam может это сделать.

Надеюсь, что Shotwell получит больше возможностей, эта ситуация изменится.

UPDATE: Хотя верно, что Shotwell 0.7 не сохраняет свои теги на рисунках, созданных этими тегами, теги могут быть встроены в изображения, если вы решите их экспортировать, благодаря Адаму, чтобы сделать это понятным. Надеемся, что этот экспорт без потерь при работе с jpeg. Я подозреваю, что если вы выберите исходный размер для параметра «Масштабирование» в диалоговом окне экспорта.

9
ответ дан 26 July 2018 в 23:59
  • 1
    Во время экспорта, если параметр «Масштабирование» - это «Размер оригинала» и , фотография неотредактирована (без цветовых настроек, обрезки и т. Д.), Она без потерь. Обратите внимание, что изменение ориентации фотографии также без потерь, поскольку мы используем флаг EXIF, а не перекодируем повернутое изображение. – Jim Nelson 22 February 2011 в 00:21
  • 2
    Приятно знать, спасибо – Sabacon 22 February 2011 в 19:19
  • 3
    Я считаю, что вы можете проверить & quot; Напишите теги, заголовки и другие метаданные в файлы фотографий & quot; в настройках Shetwell, чтобы он записывал свои метки в файлы изображений. – JellicleCat 14 March 2015 в 08:16

Я попытался использовать скрипт user38122 для разбора базы данных shotwell, и это не сработало. По-видимому, схема была изменена в последних версиях. Вместо этого я написал следующий скрипт, который использует pandas (который я лично предпочитаю писать SQL) для создания пересечений тегов. В приведенном ниже примере я показываю все изображения, у которых есть как тег «cat», так и «sleep».

#!/usr/bin/python # An example of how to query the shotwell database with pandas import sqlite3, pandas, os, time, datetime con = sqlite3.connect('/home/dov/.local/share/shotwell/data/photo.db') photo_df = pandas.read_sql("SELECT * from PhotoTable", con) for c in ['exposure_time','timestamp','time_created']: photo_df[c] = photo_df[c].map(datetime.datetime.fromtimestamp) tag_df = pandas.read_sql('SELECT * from TagTable', con) def get_image_ids(tag): """The image ids are stored morphed in the database as %016x""" global tag_df return set([int(s.replace('thumb',''),16) for s in tag_df[tag_df.name==tag].photo_id_list.iloc[0].split(',') if len(s)]) def get_photos(ids): """Get the photos for a list of ids""" global photo_df return photo_df[photo_df.id.isin(ids)].sort(['exposure_time']) def view_pix(rows): cmd = ('eog ' + ' '.join(['"%s"'%row.filename for idx,row in rows.iterrows()])) # print cmd os.system(cmd) print 'querying...' # An example of how to create an intersection of two tags ids1 = get_image_ids('cat') ids2 = get_image_ids('sleeping') rows = get_photos(ids1.intersection(ids2)) # An example of how to filter the rows by timestamp time_low,time_high = datetime.datetime(2006,8,1),datetime.datetime(2009,1,1) rows = rows[(rows.exposure_time > time_low) & (rows.exposure_time < time_high)] print '\n'.join([str(ts) for ts in rows['exposure_time']]) view_pix(rows) print 'done'
0
ответ дан 31 July 2018 в 10:41

Поскольку ~/.shotwell/data/photo.db идентифицируется как photo.db: SQLite 3.x database по команде файла, я использовал SQLite Database Browser (sqlitebrowser), чтобы открыть его.

Хммм ... вы можете прочитать его :-) У него есть функция экспорта CVS.

Это не обычный подход к графическому интерфейсу, но есть способ.

0
ответ дан 31 July 2018 в 10:41

Если вы хотите действительно хороший инструмент / браузер GUI, который позволит вам пометить ваши изображения с помощью тегов Exif (и, следовательно, доступных в Shotwell тоже), я рекомендую jBrout.

Я jBrout .

Чтобы установить его, перейдите в Synaptic, выберите настройки / репозитории, перейдите на вкладку «Другое программное обеспечение», затем нажмите кнопку «Добавить» и вставьте в эту строку:

deb http://jbrout.free.fr/download/debian binary /

Затем перезагрузите и выполните поиск jBrout.

0
ответ дан 31 July 2018 в 10:41

Быстрый (грязный?) код python для этого, не обновляя Shotwell (я думаю, что с 0.8.x Shotwell может выписывать теги, но вы не можете обновить их до Lucid). Эта вещь будет выписывать звездные рейтинги как теги (комментарий, который бит, очевидно, если вы этого не хотите).

Требуется exiftool. Он будет дублировать любые теги, которые находятся в базе данных shotwell, а также изображения (то есть те, которые Shotwell импортировал при импорте изображений), поэтому следите за этим. Кроме того, требуется довольно много времени для большой коллекции фотографий.

import os conn = sqlite3.connect("/home/ username /.shotwell/data/photo.db") def get_tags(): return [ x[0] for x in conn.execute("SELECT name FROM TagTable").fetchall()] def tag_query(tag): return conn.execute("SELECT photo_id_list FROM TagTable WHERE name=?", (tag,)).fetchone()[0].split(",") def get_tagged_photos(tag): for id in tag_query(tag): result = conn.execute("select filename from PhotoTable where id=?", (id,) ).fetchone() if result: yield result[0] def get_photos_by_rating(rating): return [photo[0] for photo in conn.execute("select filename from PhotoTable where rating=?",(rating,)).fetchall()] def get_tagging_commands(): commands = [] for rating in range(1,5): for photo in get_photos_by_rating(rating): commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=rating%d \"%s\""% (rating,photo)) for tag in [tag for tag in get_tags() if tag != "keep"]: for photo in get_tagged_photos(tag): commands.append("exiftool -overwrite_original_in_place -preserve -keywords+=%s \"%s\"" % (tag,photo)) return commands commands = get_tagging_commands() for command in commands: print command os.system(command)
2
ответ дан 31 July 2018 в 10:41

К сожалению, Shotwell, похоже, сохраняет теги в своей собственной базе данных, а не встраивает их как exif, IPTC или XMP в изображения. Вы можете проверить с помощью exiftool, который можно установить, установив пакет libimage-exiftool-perl, доступный в репозиториях.

libimage-exiftool-perl

использовать команду; exiftool testpicture.jpg, чтобы проверить фотографию с именем testpicture.jpg, которую вы ранее отметили с помощью Shotwell. Вы увидите, что вывод exiftool не содержит тегов Shotwell.

Утилита exiftool может помечать ваши изображения, вставляя теги на фотографию, и хорошая вещь об этом заключается в том, что большинство фотожурналистов будут использовать их, включая Shotwell , Например:

exiftool -keywords=favourite -keywords=family testpicture.jpg

Заменить существующий список ключевых слов двумя новыми ключевыми словами (любимым и семейным).

Когда testpicture.jpg импортируется в Shotwell, изображение будет помечено любимым и family

Может быть полезно знать, что база данных Shotwell представляет собой базу данных sqlite, расположенную в вашем; ~/.shotwell/data и обычно называется photo.db, вы можете скопировать его где-то еще на свой компьютер и получить доступ к нему с помощью sqlite.

Есть несколько интерфейсов GUI для sqlite, есть один для firefox здесь или вы может использовать sqliteman. Оба этих интерфейса имеют экспорт в функции csv; когда вы экспортируете свои теги в csv (Comma Separated Values), вы можете проверить, будет ли какое-либо другое программное обеспечение для управления фотографиями импортировать и сопоставить теги с соответствующим полем в своих собственных базах данных. Я считаю, что Digikam может это сделать.

Надеюсь, что Shotwell получит больше возможностей, эта ситуация изменится.

UPDATE: Хотя верно, что Shotwell 0.7 не сохраняет свои теги на рисунках, созданных этими тегами, теги могут быть встроены в изображения, если вы решите их экспортировать, благодаря Адаму, чтобы сделать это понятным. Надеемся, что этот экспорт без потерь при работе с jpeg. Я подозреваю, что если вы выберите исходный размер для параметра «Масштабирование» в диалоговом окне экспорта.

9
ответ дан 31 July 2018 в 10:41
  • 1
    Во время экспорта, если параметр «Масштабирование» - это «Размер оригинала» и , фотография неотредактирована (без цветовых настроек, обрезки и т. Д.), Она без потерь. Обратите внимание, что изменение ориентации фотографии также без потерь, поскольку мы используем флаг EXIF, а не перекодируем повернутое изображение. – Jim Nelson 22 February 2011 в 00:21
  • 2
    Приятно знать, спасибо – Sabacon 22 February 2011 в 19:19
  • 3
    Я считаю, что вы можете проверить & quot; Напишите теги, заголовки и другие метаданные в файлы фотографий & quot; в настройках Shetwell, чтобы он записывал свои метки в файлы изображений. – JellicleCat 14 March 2015 в 08:16

Другие вопросы по тегам:

Похожие вопросы: