Easy/cheap way to insert shapes into multiple BMP image files?

I have quite a few BMP image files and I need to highlight a section of each image. An arrow, a circle, or some other method would be fine. The catch is that I need to have it positioned in exactly the same location on each image.

This is a relatively easy task when one has a decent editing program. I don’t. Plus, I’m afraid I would have to do a bit of scripting if I use GIMP or some other free program.

Does anyone have any suggestions? I could get by if I could “copy” and “paste” a shape as I open each file, but the shape needs to be in exactly the same location and the same size/color in each image. Freeware would be nice. Once I have inserted the shape, I would simply save the image as another BMP file to retain maximum quality.

Thanks in advance!

Are all the destination images the same resolution and aspect ratio?

If so, copy the arrow (circle, whatever) plus one pixel from the far corner of the image (upper right, upper left, whatever).

Assuming your image editing program doesn’t impose blank white for anything in the pasted area that doesn’t have copied content, that should let you paste / yank corner of pasted area to corner of image / deselect.

Open one of the images in GIMP. Add a layer and make it see through (I forget exactly what that’s called in GIMP transparency I think. Put the pointer, circle, whatever in the right place.
Save the image in GIMP format.
Flatten the image and save it in whatever format you want. That’s one final image.
Open the unflattened GIMP image. Edit the layer with the picture and replace it with picture number 2. Flatten and save.
Etc.

If I understand your task, this would be pretty simple in PowerPoint, wouldn’t it?

You can download Krita for free, it’s a powerful Photoshop-like photo-editting software. It’s a bit rough around the edges, though. I found it more intuitive than GIMP but this is an entirely subjective assessment.

Basic instructions as follows*:

Load up all your images in Krita, put them in separate layers in the same drawing space, and then draw in your arrow/circle/whatever in a topmost layer.

Next, hide all layers save your arrow layer and one image. Save this as a jpg/gif/png/whatever. Hide the one image, reveal another, save it as a fresh image. Repeat.

It’s more-or-less what Old Guy was suggesting, but with fewer steps and much more RAM being consumed.

  • Those steps may not make sense if you’re not familiar with Photoshop or Krita layering.

I’m assuming you have access to PowerPoint:

  1. Place each picture in a separate slide.
  2. Create your circle or arrow on the first slide.
  3. Right-click on the shape and Copy it.
  4. Go to each subsequent slide and hit Ctrl+V. This will paste the shape in the exact same position on each slide.
  5. Click FILE–>Save As, and under the box where you type in the filename for saving, there is the box that says Save As File Type. Select Jpeg.
  6. When it asks which slides you want to save, select All.
  7. This will automatically create a subfolder and save each slide as a separate file in the folder.

You now have all of your pictures with the shape in the exact same position on all of them.

Here’s what I would do, assuming that the images are all the same dimensions and it is the same shape/image for every image. (Not necessarily the most elegant way, but a way I know.) (Okay, it also assumes you are uing Windows.)

1.) Install Virtualdub.
2.) Open the bitmaps as a series of frames (if they named are named sequentially with no breaks, e.g. image001.bmp, image002.bmp, image003.bmp, etc. opening the first file will import the whole sequence.
3.) Use one of the available overlay or logo filters to add the highlight image.
4.) Instead of making a video, choose to export as a series of bitmaps.

All very good suggestions. Thanks! I’m actually quite familiar with VirtualDub and have used that feature previously. The layering process sounds like it might give the best results. More details and answers to questions:

  1. Yes, they are all exactly the same resolution and dimensions, and I would like to maintain that.

  2. The images are high-resolution…about 15 MP each, so they are not easy to work with in most video editors or PowerPoint.

  3. I have about 75 images I need to modify.

I created the images using time-lapse with a DSLR camera. I want to show whether an object moved (or did not). Having original, BMP images with max resolution to be able to compare, print, or measure is one of my objectives.

If only one area is important, can’t you crop the images?

There are programs for adding watermarks on batches of images, perhaps one of those could to this.

That’s possible, and I know ways to do that in batches. But I’m trying to retain the entire image for several reasons. There’s activity in other parts of the image, as well as a time/date stamp that would be good to retain.

So far, it looks like I can use the “layers” strategy in an old version of JASC Paint Shop Pro. It’s cumbersome, but appears to be feasible.

I think I can also record a script in PSP and apply it to a group of files. I’ll have to experiment with that.

Is “scripting” out of the question even if it is one or two lines? Example using ImageMagick composite function.

Speaking of layers in PSP, just tossing out there that you can set the options to show the difference between two layers, with things that don’t change between one image and the next being black. Helps you see movement.

ImageMagick version with many options illustrated (for fine-tuning comparisons)

You can also do this with the free irfanview, using a bulk watermark feature:
https://www.livefreedietravelling.com/tech-web/adding-watermarks-to-your-photos-using-infranview-awesome-free-program/

You know, I use IrfanView all the time and I had never noticed that feature in the bulk processing menu. That looks extremely promising. I can use PSP to create the PNG circle with a transparent background.

Many thanks!

That really does the trick! I have to be careful to create the PNG object at the right scale, since I can’t scale it at insertion, but it looks great and works quickly for a batch.

Problem solved!