Here is something you can do with Mathematica 7.0 Image Processing
Here is a good picture of American Flag
Then create a mask for it and add them together:
mask= Graphics[{Black, CountryData["UnitedStates", {"Polygon", "Mercator"}]}, ImageSize -> {500, 335}]
flagImage = ImageAdd[img, mask]
Then create another new image with the boundary:
bgk = Graphics[{FaceForm[], EdgeForm[{Black}], CountryData["UnitedStates", {"Polygon", "Mercator"}]}, ImageSize -> {500, 335}]
ImageMultiply[bgk, flagImage]