Claris FileMaker tips, techniques, and news.

By Jeremiah Kincaid  Posted on  June 8th, 2014  in  Claris FileMaker

Fun with DDRs - Extracting Images in FileMaker Layouts

Update: There are other, more efficient ways to extract images out of a layout, as long as the image was inserted into the layout as an image object (aka via Insert-->Picture or drag and dropped). This is just one technique that gets you more familiar with the XML DDR. Starting in FileMaker 14 you can now export the graphic on the layout in layout mode by right clicking and selecting 'Export Graphic'.

If you're anything like me, you've had moments where you needed to modify an icon in an inherited FileMaker solution, but didn't have the original file. Like everything in FileMaker, there are a number of ways to get the original file back out. In this article, we'll show you how to extract images in layouts using the XML DDR.

Watch a Demo of using a DDR to extract an image out of a FileMaker layout

1. Create a new FileMaker file and paste image onto layout (Optional)

FileMaker New DatabaseI highly recommend creating a new, blank file and pasting the image you want to extract into the new file's layout. You can get the image onto your clipboard by right-clicking on the image in layout mode in the original FileMaker file and selecting Copy.

The point of this is to make searching the DDR much easier, and much faster, as a new file's DDR is very small compared to an existing FileMaker file with 85 tables and 600 layouts. Not only that, but because the image is the only object on the layout, you'll find the image in the much faster as there will be less objects to wade through under the Layout tag in the DDR.

Alternatively, you could create a new blank layout in the existing FileMaker file, and paste the image onto there. The DDR will take longer to run than a new file, but because the image is the only object on the layout, you'll still find it pretty quickly with a text editor's find.

You'll need FileMaker Pro Advanced to run a DDR. And make sure to run an XML DDR, not an HTML DDR, as the HTML DDR doesn't have the hexadecimal representation of the image, which is the crux of this technique.

FileMaker - Creating XML DDR2. Run an XML DDR

You'll need FileMaker Pro Advanced to run a DDR. And make sure to run an XML DDR, not an HTML DDR, as the HTML DDR doesn't have the hexadecimal representation of the image, which is the crux of this technique.

3. Open the file-in-question's DDR in a text editor and search for layout's name

FileMaker - Finding Layout in DDR

Make sure to open the XML file of the FileMaker file that contains your image, not the Summary.xml file. The name of the layout will be in a name attribute in a Layout tag, to the far right of the tag. Threw me off a little bit when I first started using this technique, as you'd expect the name to be to the far left.

4. Find the hexadecimal representation of the image

FileMaker - DDR Image Hex and Type

You are looking for GraphicObj tags. Luckily they stick out pretty easily: they're marked by HexData tags, one or two of which contain long, random-looking numbers and characters that go off into infinity across your screen. This seemingly random string of characters is the image, in hexadecimal form. The goal is to convert the hexadecimal back to the original file.

All you need to do now is determine which HexData tag you care about. If FileMaker has stored multiple versions of the original image, you should see multiple stream tags, and within those, a Type tag and a HexData tag. Find the Stream tag with a type that matches the original image's type. In the example above, there's only one stream tag, and its type is PNG. That's our original image's type.

5. Copy the hex onto your clipboard

FileMaker - DDR Copy Hex on to your clipboard

You should be able to just double-click on any part of the hex representation and it'll select the whole thing (this double-clicking ability does depend on your text editor – ymmv). Right-click, copy and done.

6. Convert the hex to the original image file

Go to any online hex-to-binary converter to convert the hexadecimal representation of the image to a file that you can save to your desktop.

FileMaker - Hex to Binary online converter

To use the converter, change the input type on the top right of the page to Direct input, paste the hex into the box, check the Download result? checkbox (it should turn to "Yes, download") and then press the Hex>Bin button. The converter will automatically save a file to your desktop. This is the image file. Rename it to something that makes sense to you, and change the file extension to match the image's type (e.g. png, jpeg, etc.). Double-click on the file to open it and make sure the image looks correct. If so, you're done!

A Few Things to Note

  • Online hex-to-binary converters have file size limits. Every online hex-to-binary converter that we've come across has a limit on the number of hex characters that you can paste into the converter. In the case of, there's a limit of 10 MBs, which is pretty good. You shouldn't have any issue here as long as you are trying to extract icons.
  • The original image's file name is lost. There's a stream of type FNAM for each graphic object in the DDR, which suspiciously looks like the words "file name" to me. But to date, we haven't been able to extract the original file name with the hex for the FNAM stream. You end up with le garbage converting the hex to text with an online converter. FileMaker encodes text as UTF-16; that's probably the key to getting back the original name.
  • Third-party apps that extract the contents of FileMaker's clipboard can save you a couple steps. No need to fuss around with a DDR if you use a third-party product that can extract the XML from FileMaker's private clipboard. All you need to do is copy the image in layout mode, and then use one of these products to paste the XML representation of the image into a text editor. From there you can find the hexadecimal representation of the image and convert it to binary with an online converter. Check out myFMbutler's Clip Manager for FileMaker or 2empowerFM's Clipboard Explorer to get your feet wet in the power of using FileMaker's internal XML to make your life as a developer easier and more efficient.

The Future

If you feel extracting images in layouts should be easier and more intuitive (like a right click-->Export option), feel free to reach out to FileMaker, Inc. and submit a feature request. The more voices requesting a feature, the more likely FileMaker, Inc. will put it in the product line.

In the meantime, give the technique a spin and become a little more acquainted with the XML DDR. We'll dive into how to extract an image that was inserted as the background of an object in part 2! If you need any assistance, please contact us and we'd be happy to help.

Did you know we are an authorized reseller for Claris FileMaker Licensing?
Contact us to discuss upgrading your Claris FileMaker software.

Jeremiah Kincaid thumbnail
Jeremiah Kincaid

Jeremiah is a Certified Salesforce Architect and Consultant who has been with DB Services since 2007. A Purdue University graduate, Jeremiah earned dual bachelors in Chemistry and Philosophy. His educational background and natural smarts gives him the ability to be successful both in the trenches of scripts as well as in collaboration with co-workers and clients. A rarity, indeed.

FileMaker 18 Certified Developer
FileMaker 17 Certified Developer
FileMaker 16 Certified Developer
FileMaker 15 Certified Developer
FileMaker 14 Certified Developer
FileMaker 13 Certified Developer
FileMaker 12 Certified Developer
FileMaker 11 Certified Developer
"We were actually able to add more features than we thought would be possible within our budget. We always experienced a ‘can do’ attitude and DB Services was incredibly patient and easy to work with."
Courtney Hartman
Art Director
"The new FileMaker custom website interface is very user-friendly and easy to follow for our clients. In addition, it is much faster than the old Instant Web Publishing (IWP) interface. Thank you and all the others who have helped us out at DB Services. I am very grateful for the excellent service you provide us. Its nice to know we can call you for help if we have an issue."
Wayne Capek
"We needed a solution that would simplify the administration of our responsibilities under our contract with the State of Indiana. We have seen a dramatic increase across the state in the number of potential foster and adoptive parents that have begun the preparation and training process. This increase has resulted in a significant opportunity for children available for adoption. That’s a big win for everyone! And it’s all because we can refer potential parents to the proper state contacts efficiently and quickly."
Chris Morrison
Executive Director
"Thank you for all of your expertise and valuable help. I am so grateful to have found DB Services."
Linda Findlay
"Thank you for our new database system. We transitioned from a carbon copy paper based system to a digital database. The software has saved us time and money. We used to archive all our jobs in cabinets, now we can look up a job in seconds from anywhere. The software allows us to easily email estimates to our customers in pdf format. In a year there was a return on investment just from eliminating the purchasing of our carbon forms."
Todd Cartmel
"The new system allows us to create and track jobs for customers along with inventory, something we had been doing with separate word and spreadsheet files. Because it’s now so intuitive, new staff members are able to begin using the database immediately without our usual training session and ‘cheat sheets’ for getting around within the file."
Tom Andrews