Извлечь / преобразовать (многофайловое) изображение, которое преобразовано
У меня есть файл, созданный с помощью программы, создателя наклеек с изображениями. Я знаю, что эта программа сохраняет свои изображения (вероятно, изображение, bg и маску) в один файл с расширением ".adf" .
Я не смог преобразовать выходной файл с изображением магии, причина ошибки ниже:
convert: no decode delegate for this image format `output.adf' @ error/constitute.c/ReadImage/532.
Я не знаю, как этот образ конвертируется с помощью волшебства изображения. это мой список настроек:
Path: [built-in]
Name Value
-------------------------------------------------------------------------------
NAME ImageMagick
Path: configure.xml
Name Value
-------------------------------------------------------------------------------
CC vs10
COPYRIGHT Copyright (C) 1999-2011 ImageMagick Studio LLC
DELEGATES bzlib freetype jpeg jp2 lcms png tiff x11 xml wmf zlib
FEATURES OpenMP
HOST Windows
LIB_VERSION 0x671
LIB_VERSION_NUMBER 6,7,1,0
NAME ImageMagick
RELEASE_DATE 2011-07-15
VERSION 6.7.1
WEBSITE http:// www.image magick.org
Я прикрепил файл: src.adf
* EDIT *, если я запускаю команду file на src.adf, она говорит:
root@MexHex-PC:# file -vv src.adf
file-5.25
magic file from /etc/magic:/usr/share/misc/magic
Что пропустили? Спасибо
1 ответ
Это src.adf
выглядит как очень минимальный и плоский файл данных. Я ничего не знаю о продуктах Dalahoo3D и / или ArcGis, но мы можем быстро извлечь встроенные изображения с помощью Python.
import struct
with open('src.adf', 'rb') as f:
# Calculate file size.
f.seek(0, 2)
total_bytes = f.tell()
# Rewind to beging.
f.seek(0)
file_cursor = f.tell()
image_cursor = 0
while file_cursor < total_bytes:
# Can for start of JPEG.
if f.read(1) == b"\xFF":
if f.read(3) == b"\xD8\xFF\xE0":
print("JPEG FOUND!")
# Backup and find the size of the image
f.seek(-8, 1)
payload_size = struct.unpack('<I', f.read(4))[0]
# Write image to disk
d_filename = 'image{0}.jpeg'.format(image_cursor)
with open(d_filename, 'wb') as d:
d.write(f.read(payload_size))
image_cursor += 1
else:
f.seek(-3, 1) # Back cursor up, and try again.
file_cursor = f.tell()
Который сбрасывает следующие три изображения...
Я уверен, что этот файл был сделан с Imagemagick. Я уже видел, что можно конвертировать файл в TIFF изображение. Он сказал мне сделать это с Imagemagick, но не объяснил метод.
Я предполагаю, что это просто вопрос недопонимания. Это правда, что ImageMagick обычно обрабатывает форматы JPEG / TIFF, но не географические информационные системы и / или 3D-моделирование. Обычно это расширяется поставщиком - например, ArcGIS. Могу поспорить, что ImageMagick присутствует в процессе генерации файлов TIFF, но .ADF
не будет поддерживаться ImageMagick, пока кто-то не напишет кодер-делегат.
Обновить
Исходя из этого вопроса, похоже, вам нужно расширить делегаты ImageMagick для вызова утилит GDAL. Вам нужно будет обновить файл Delegates.xml, чтобы вызвать правильную утилиту.