MATLAB user Paul contacted me recently to ask how to convert 150dpi JPEGs to 300dpi TIFFs. After I asked for more information, he explained that he was working with a publisher who expected all electronically submitted images to be 4 inches by 6 inches at 300dpi.
There is often a conceptual disconnect between engineers and scientists doing image processing and printers or publishers. Publishers often seem to think that every image must have a physical size measured in inches, whereas MATLAB users may be working with data whose physical size may be more appropriately measured in kilometers or nanometers. Or the unit may not even be length. Or there may not be a meaningful physical unit at all. Some users don't know what the publisher is even talking about when they say "your image isn't 300dpi."
TIFF files have "resolution" tags in them. These tags specify the number of pixels per unit in the horizontal and vertical directions. The default unit is inches. By default, the MATLAB function imwrite sets these values to 72 pixels per inch, but imwrite has a syntax to specify a different value.
If your publisher specifies image requirements in inches and dpi, first convert that to the number of rows and columns in the image. 4 inches by 6 inches at 300dpi corresponds to 1200 pixels by 1800 pixels. (Caution: terminology confusion between "pixels" and "dots" is rampant and unavoidable. You'll have to rely on the context to figure out which term is meant.) Modify your image to be 1200 by 1800. (Resize it, crop it, compute it differently, etc.) Then save your 1200 by 1800 image to a TIFF file, specifying 300 as the resolution:
imwrite(my_image, 'figure_10_a.tif', 'Resolution', 300);
That should satisfy your publisher.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.