Изображения из файла отчёта Fast Report
Понадобилось странное: достать изображения их шаблона отчёта fast report. На деле это оказался xml файл, в котором данные об изображении хранятся в тегах TfrxPictureView. На вид было похоже, что там бинарные данные в шестнадцетиричном представлении. На деле так и оказалось. Заглянув внутрь увидел TBitmap, чего и следовало ожидать, т.к. программа, что их использовала была на дельфи или си билдере, хотя я наделся увидеть сигнатуры jpeg. Какая структура у TBitmap при сериализации в файл я понятия не имею, быстрое гугление результатов не дало. Понадеявшись, что там в заголовке какая-то служебная информация типа размера файла и пр. а дальше идёт bmp побрутофорсил маленько. Получилось:
1 2 3 4 5 6 | $form_name = "np.fr3"; preg_match_all('#Picture\.PropData="([0-9A-F]*)"#', file_get_contents($form_name), $matches); $i = 0; foreach ($matches[1] as $value) { file_put_contents(++$i.'.bmp',substr(pack("H*" ,$value),22)); } |