I am going to try and be as specific as possible.
I am starting an invitation business that will allow people to customize their invitations online and then send it to print. I am trying to figure out the best way to take the preview image they are mocking up and output it so its high resolution enough to print.
I know svg would be my best bet, but the problem is half of my designs are not vectors, but rather 300 dpi raster images.
Does anyone have any ideas on how I could take these 300 dpi images, shrink them down so I can create a preview image and then scale them back up so I can print them?
I have tried saving as PNG files, but the problem is they get saved for the web at 72 dpi.
You can’t scale down an image to a low resolution preview-version and then scale it back up to high resolution and preserve the high resolution quality. You will lose a ton of detail in the original image if you scale it down, then scale it back up.
I think you need to rethink the flow of your application here. The normal way to do this is to create a preview image and let the user use it in the web UI to create their invitation, but when they do modifications on it, you store those as metadata that describes the modifications, not as a modified image. Then, when it comes time to create the high resolution image, you go back to the original, make a copy of it and you apply the metadata modifications to the high resolution image copy, thus preserving the maximum resolution.
If you want to make sure you’re showing them a correct preview before they bless it for printing, you can make one of the last approval processes be a step where you generate the high resolution image combined with the metadata edits that they’ve done and then you take that high resolution image and make a web-sized version of that as their final web preview. You would use the high resolution version you created for printing.