Как удалить metadata(exif data) из фотографии через python3?
Я нагуглил https://null-byte.wonderhowto. n-0161418/, где используется библиотека Image, https://www.smallsurething.com. in-python/, где используется библиотека piexif, https://stackoverflow.com/ques. -in-python, где используется GExiv2,
но ни одна из этих библиотек у меня не установлена и ни одна не устанавливается через pip install в Windows PowerShell. Их задеприкейтили? Или я что-то делаю не так?
Использую ОС Windows 10. metadata из фотографий хочется удалить абсолютно всю, чтобы не осталось никаких зацепок
Подскажите, пожалуйста, что можно сделать, я в отчаянии
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Переименовать фотографии в соотв. с данными exif
Итак, нам нужно: 1) выбрать фотографии по шаблону *. (или значительно более сложному regexp) .
Как удалить (очистить) метаданные (exif) в свойствах изображения?
Друзья, здравствуйте! Помогите, пожалуйста, решить проблему. Пытаюсь удалить метаданные (exif).
Spring Data JPA. Hibernate. Как удалить родителя через дочерний класс
Приветствую. Не получается удалить родителя )) Суть такая. Имеется дочерняя таблица: .
Shindig, сохранение UserPreferences через metadata?
Вечер добрый. Как сделать в Apache Shindig сохранение UserPreferences через metadata? Заранее.
![]()
5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

Сообщение было отмечено Stopping как решение
Решение
Расскажите что вы такого делаете, что именно у вас не устанавливается?
Ну и хотя бы трейсбэк показали бы для приличия.
Установка:
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как удалить фотографии из закладок в контакте, не убирая лайк?
Как удалить фотографии из закладок в контакте не убирая лайк?
Как отправить данные фотографии и текст. полей через ajax в файл .php
Пробую через ajax передать данные фотографий и текстовых полей.. (имени.. фамилии т.д).. пробую в.
Как удалить строчку из таблицы Excel с использованием System.Data.OleDb?
Всем доброй ночи. Не думал, что с такой мелочью возникнут проблемы. Есть табличка со столбцами.
Удалить фотографии в фб
Здравствуйте, Может вопрос не по теме, но может кто знает. Как удалить фотографию с отметкой.
Python удаление метаданных у фотографий
Мне необходимо удалить метаданные у фотографии, хранящейся на компьютере, как я могу это сделать?
Отслеживать
задан 4 фев 2020 в 15:05
587 3 3 серебряных знака 19 19 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вы можете попробовать загрузить изображение с помощью Python Image Lirbary (PIL), а затем снова сохранить его в другом файле. Это должно удалить метаданные.
from PIL import Image image_file = open('image_file.jpeg') image = Image.open(image_file) # next 3 lines strip exif data = list(image.getdata()) image_without_exif = Image.new(image.mode, image.size) image_without_exif.putdata(data) image_without_exif.save('image_file_without_exif.jpeg')
Надеюсь, чем-то смог помочь 🙂
Модуль hashlib, чтение EXIF и работа с файловой системой
Легенда для этого задания следующая. Из-за резкого скачка электричества ваш компьютер выключился во время записи файла на диск. В результате повреждена файловая система, поэтому уже невозможно найти свои файлы в «обычных» местах. На диске остались фотографии, которые вам дороги. С помощью специальной программы, которая сканирует весь диск и ищет последовательности байтов, похожие на фотографии, вы добыли всё, что можно. Так как файловая система умерла, то имён файлов и прочих атрибутов нет, есть только гора файлов с бессмысленными именами. Так как вы много работали с фотографиями, то там много повторов фотографий. А вот и архив с этими фотографиями. Для его распаковки под Windows можно использовать архиватор 7-Zip.
План по наведению порядка:
- Получить список файлов;
- Посчитать sha1-хеш каждого файла. У одинаковых фотографий будет одинаковый хеш, а у разных — разный;
- Отобрать по одному файлу для каждого хеша, а остальные — удалить;
- В каждом файле в EXIF найти информацию о дате и времени съёмки;
- Переименовать каждый файл в соответствии с датой и временем съёмки.
После распаковки архива фотографии будут находиться в каталоге resc_photos . Предполагается, что этот каталог находится в том же каталоге, что и ваша программа. Например, ваше решение может сделать команду os.chdir(‘resc_photos’) для обработки.
При выполнении задания поощряется поиск готовых решений в интернете, прежде всего хорошим подспорьем является сайт stackoverflow.com.
В большинстве заданий вам нужно на проверку сдать программу на языке Python, после которой в многострочном комментарии находится ответ. Пример формата сдачи ответа.
print(2 ** 100) """ 1267650600228229401496703205376 """
A: sha1-хеши файлов
Для каждого файла из архива посчитайте его sha1-хеш. Выведите для каждого файла имя этого файла, а затем через пробел — его sha1-хеш. Файлы должны быть упорядочены по именам.
Для вычисления контрольных сумм файлов вам понадобится модуль hashlib. Примеры его использования лучше найти в интернете.
При вызове функций модуля hashlib вам понадобится считать двоичные данные, хранящиеся в файлах. Для этого необходимо открыть файл на чтение в двоичном режиме, что делается передачей параметра «rb» функции open . Например, open(«image.jpg», «rb») .
Если бы в архиве были бы только файлы 0spuuzog.jpg , 1e1ztfom.jpg и 82t56870.jpg , то правильный ответ был бы таким:
import os import hashlib . """ 0spuuzog.jpg dd3f8e73dc19b80901c42ec551d6562e09c89a40 1e1ztfom.jpg 96363016d4463a09bb40c523e15fa3228c39a7d8 82t56870.jpg dd3f8e73dc19b80901c42ec551d6562e09c89a40 """
B: Отбор уникальных файлов
Отберите все уникальные фотографии и выведите их имена.
Для файлов, у которых есть несколько копий, необходимо вывести минимальное в лексикографическом порядке имя.
Список имён файлов также должен быть выведен в лексикографическом порядке.
Если бы в архиве были бы только файлы 0spuuzog.jpg , 1e1ztfom.jpg и 82t56870.jpg , то правильный ответ был бы таким:
import os . """ 0spuuzog.jpg 1e1ztfom.jpg """
С: Удаление лишнего
Получите список всех файлов, которые не попали в список из предыдущей задачи, а также удаляет эти файлы с диска. Для удаления файлов воспользуйтесь функциями модуля os .
В тестирующую систему необходимо сдать код программы, которая удаляет ненужные файлы, а также выводит список удаляемых файлов в лексикографичесчком порядке. Если бы в папке были бы только файлы 0spuuzog.jpg , 1e1ztfom.jpg и 82t56870.jpg , то правильный ответ был бы таким:
import os . """ 82t56870.jpg """
D: Чтение EXIF
Теперь мы хотим упорядочить найденные фотографии, для чего хорошо подойдёт время съёмки. Цифровые камеры сохраняют дополнительные метаданные, например, дата-время съёмки, геолокация, модель камеры, ориентация камеры и т.д. внутри JPEG-файла, это так называемые данные EXIF.
Для чтения данных EXIF будем использовать модуль Pillow для библиотеки Python. Сначала вам понадобится установить его, для этого нужно использовать консольную команду pip . Запустите консоль и введите команду
pip install --user Pillow
В системе Linux вместо pip скорее всего нужно запускать pip3 .
Если в системе Windows команда pip не найдена, то вам нужно добавить каталог, где находится программа pip.exe, это подкаталог Scripts каталога установки Python, то есть обычно он имеет путь вида C:\Program Files\Python310\Scripts .
Изучите документацию на Pillow или найдите в интернете, как считывать данные EXIF при помощи Pillow. Вам нужны данные момента съёмки.
Для каждого уникального файла из задачи B выведите имя файла и время его съёмки в том виде, в котором оно записано в EXIF. Выводите имена файлов в лексикографическом порядке.
Если бы в архиве были бы только файлы 0spuuzog.jpg , 1e1ztfom.jpg и 82t56870.jpg , то правильный ответ был бы таким:
import os . """ 0spuuzog.jpg 2015:08:23 14:26:12 1e1ztfom.jpg 2015:08:19 16:05:07 """
E: Переименование
Теперь ничего не стоит переименовать файлы в имена вида «yyyy-mm-dd_hh-mm-ss.jpg». Мы выберем именно такую строку записи имён файлов, потому что использование двоеточие в имени файла в системе Windows затруднительно (оно используется для отделения имени диска от пути к файлу).
Однако возникнет проблема: могут быть файлы, снятые в одну секунду. Чтобы они не получили одинаковые имена, будем добавлять в конец имени файла перед «.jpg» один, два или три символа «_». То есть первый снятый файл в эту секунду получает имя «2015-08-23_14-26-12.jpg», второй файл, снятый в эту же секунду — «2015-08-23_14-26-12_.jpg», следующий файл — «2015-08-23_14-26-12__.jpg» и т.д.
Ваша программа должна удалять дубликаты, как это делалось раньше, а уникальные файлы переименовывать в соответствии с временем съёмки.
В тестирующую систему сдайте программу, которая удаляет дубликаты, переименовывает уникальные файлы и выводит для каждого уникального файла его старое и новое имя через пробел.
Для однозначности проверки, все файлы обрабатываются в лексикографическом порядке имён.
import os . """ 0spuuzog.jpg 2015-08-23_14-26-12.jpg 1e1ztfom.jpg 2015-08-19_16-05-07.jpg """
F: Выбор объектива
При выборе объектива для фотоаппарата возникает вопрос: какие диапазон фокусных расстояний (углов поля зрения, см. картинку в википедии) вам необходим. Что выбирать, длиннофокусный объектив, широкоугольный объектив и т.д.? Довольно надёжный способ — посмотреть, какими фокусными расстояними вы пользуетесь.
Напишите программу, которая получает фокусное расстояние кадра из EXIF для каждой фотографии. Для каждого используемого фокусного расстояния выведите количество кадров, учитываются только уникальные фотографии. Выведите фокусное расстояние, через двоеточие: количество кадров, упорядочив по возрастанию фокусного расстояния.
Учтите, что вам нужно эквивалентное фокусное расстояние, так как именно оно участвует в маркировке объективов.
В тестирующую систему необходимо сдать код программы, которая делает это, а также выводит количества кадров. Если бы в папке были бы только файлы 0spuuzog.jpg , 1e1ztfom.jpg и 82t56870.jpg , то правильный ответ был бы таким:
import os . """ 24: 1 70: 1 """
G: Разложить по полочкам
После того, как мы «восстановили» имена файлов с фотографиями, появилась необходимость разложить их в отдельные каталоги в соответствии с датами поездок.
Будем тренироваться на «кошках». Внутри архива вы найдёте несколько файлов вида 2013-02-04_04-46-01.txt . Нужно разложить их по каталогам вида yyyy/mm/dd , где yyyy, mm и dd — соответствующие части даты, а также переименовать: убрать из имени файла дату.
В тестирующую систему необходимо сдать zip-архив, в котором находится каталог crt_dirs с нужной структурой, а также py-файл с программой. Zip-архив можете сделать руками, однако,
Если бы архив из условия состоял лишь из файлов 2013-01-16_00-24-33.txt , 2013-01-16_16-40-26.txt и 2015-11-25_16-51-47.txt , то в правильная структура в zip файле ответа выглядела бы так:
crt_dirs/2013/01/16/00-24-33.txt crt_dirs/2013/01/16/16-40-26.txt crt_dirs/2015/11/25/16-40-26.txt crt_dirs/my_pgm.py
Продавцов в даркнете можно вычислить по метаданным из их фотографий


Рекомендуем почитать:
Xakep #294. Pentest Award
- Содержание выпуска
- Подписка на «Хакер» -60%
Студенты Гарвардского университета, Пол Лискер (Paul Lisker) и Майкл Роус (Michael Rose), опубликовали результаты проведенного ими исследования. Студенты создали софт для изучения фотографий, хранящихся проектом Black-Market Archives, который содержит копии данных, опубликованных на различных подпольных торговых площадках даркнета. Оказалось, что торгующие нелегальным товаром продавцы на удивление халатно относятся к собственной безопасности.
Ресурс Black-Market Archives предлагает полтора терабайта данных для исследований. Здесь собраны данные с 83 различных порталов, 40 форумов и ряда других ресурсов, за период с 2013 по 2015 год, а это более 44 млн файлов.
Исследователи из Гарварда написали для работы с этим массивом данных Bash и Python скрипты и проанализировали только изображения, содержащиеся в архиве. Суммарно было просканировано 7 522 284 фотографии, и после 223 471 из них были отсеяны, так как являлись дубликатами.
Исследователи обнаружили, что 2 276 изображений содержат метаданные, в том числе, информацию о том, где именно было сделано фото. Затем студенты еще раз очистили выборку от дублей и изображений, чьи метаданные содержали лишь информацию о фотокамере и другие маловажные факты. В итоге осталось 229 уникальных изображений, из которых преступники забыли удалить действительно важные данные. Как выяснилось, фотографии, содержащие фактические GPS-координаты, были опубликованы их авторами неоднократно, на самых разных торговых площадках и форумах, поэтому процент дубликатов и был так велик.

Также исследователи заметили интересную особенность, связанную с подпольной торговой площадкой Agora. Между январем и мартом 2014 года на сайте было опубликовано 963 неуникальных фотографии, чьи метаданные содержали информацию о месте съемки. Но после 18 марта 2014 года на Agora не появилось ни одного такого фото. Исследователи предполагают, что в это время администрация сайта ввела некие меры предосторожности, реализовав «защиту» от подобных случаев на серверной стороне.
Данные о 229 уникальных фото на карте
Исследователи пишут, что в большинстве случаев вина лежит как на самих продавцах, которые проявляют забывчивость, так и на администрации торговых площадок. Студенты говорят, что даже Facebook лучше удаляет забытые пользователями EXIF-теги. Так, социальная сеть всегда скрывает EXIF-данные от глаз пользователей, хотя и оставляет их в собственной базе для дальнейшего анализа.
