Обычно это сделано с помощью Шаблона "фабрика"
public interface IXMLizableFactory<T extends IXMLizable> {
public T newInstanceFromXML(Element e);
}
public interface IXMLizable {
public Element toXMLElement();
}
Причина, по которой вы можете столкнуться с этой проблемой, связана с типом файла. У Delphi есть проблемы с отображением изображений JPEG, которые были закодированы с использованием CMYK, а не кодировки RGB по умолчанию. CMYK - это формат, который обычно используется для дизайна печати, старайтесь всегда кодировать изображения в формат RGB, чтобы избежать этой проблемы с Delphi.
Патч для Delphi jpeg.dcu
Пока.
Интересно. Ни Internet Explorer , ни Google Chrome не будут отображать это изображение JPEG, на которое вы ссылаетесь. Я не получаю ошибок 404 Not Found , я просто получаю заполнитель изображения, указывающий на то, что изображение не может быть открыто / отображено правильно.
FireFox отображает изображение . 1289] Вы уверены, что в задействованных файлах JPG нет ничего подозрительного или хотя бы немного необычного?
ОБНОВЛЕНИЕ: Файл, на который ссылается вопрос, открывается в PaintShop Pro ( установка старой версии 6.0) - если я просто повторно сохраню как JPEG со стандартной кодировкой, IE и Chrome будут отображать только что сохраненное изображение, как я ожидал. Определенно может показаться что-то немного странное. о кодировке исходного JPEG, которую могут обрабатывать некоторые приложения JPEG, но не все, включая некоторых «основных игроков», а не только Delphi. :)
Проверьте библиотеку бесплатных изображений для альтернативной поддержки JPEG в Delphi, если у родной есть проблемы. Free Image - это библиотека с открытым исходным кодом, которая позволяет вам работать с JPEG / PNG / ... из Delphi / BCB / и других. Очень хорошая библиотека IMHO.
Я просмотрел файл с помощью шестнадцатеричного редактора и обнаружил 3 заголовка JFIF. После извлечения каждой части я нашел 2 эскиза и изображение. Ничего особенного, потому что встроенные миниатюры кажутся частью стандарта EXIF2 .
Сами миниатюры загружаются в Delphi нормально, и преобразование файла во что-то читаемое может быть выполнено практически с любым программным обеспечением, которое я Я пробовал.
В любом случае, эта страница предоставит вам очень подробную информацию об изображении и о том, какие заголовки находятся внутри (просто вставьте URL-адрес вашего изображения в текстовое поле):
Я получаю ту же ошибку. Похоже, это ошибка в библиотеке Delphi JPEG. Вы должны сообщить об этом в QC.
SimDesign NativeJpg может открыть этот файл. Это библиотека JPEG, полностью написанная на Delphi, и автор хорошо добавил поддержку новых расширений и цветовых пространств, когда мы с ними столкнулись. В дополнение к потомку TGraphic для поддержки TImage он предоставляет множество низкоуровневых интерфейсов для управления файлами JPEG, хотя я их не использовал.