Media Server Image Manipulation Tutorial: A Comprehensive Guide to Dynamic Image Processing
In this tutorial, you'll upload an image to the ComUnity Platform Media Server, add it to an application screen, and then apply transformations to create different versions of the same image—all without editing the original file.
By the end, you'll have a working image displayed in your app with rotation applied, and you'll know how to resize, crop, and apply effects to any image using simple URL modifications.
Before You Begin
Make sure you have:
Access to the ComUnity Developer Toolkit
An existing project open in the Toolkit
An image file ready to upload (PNG or JPEG work best for image manipulation)
Step 1: Open the Media Server
Let's start by navigating to where you'll upload your image.
In your project, click the Settings icon (the gear) next to your project name. The Project Settings dialog opens.

You'll see environment tabs at the top: Global, Development environment, QA environment, and Production environment. Click on Development environment since we're just testing for now.
In the left sidebar, click on Media server.
You should now see the Media Server upload interface with a drag-and-drop area and an "Uploaded Files" panel on the right.

Each environment has its own separate Media Server. This means an image you upload to Development won't exist in QA or Production until you upload it there too. This keeps your testing isolated from your live application.
Step 2: Upload Your Image
Now let's get your image into the Media Server.
Find your image file on your computer.
Drag it into the upload area, or click "Select a file" to browse.
Wait a moment while the file uploads. Once complete, your file appears in the Uploaded Files panel on the right with a green checkmark.
Click on your uploaded file in the list. At the bottom of the panel, you'll see two URLs appear:
File URL – Uses your original filename, like:
https://toolkitv3.comunity.me/u/f/my-photo.pngSHA URL – Uses a unique hash based on the file contents, like:
https://toolkitv3.comunity.me/u/d/77d55728427f43cce27624d37658dd11292f1f8c42d288af059b27297127e551.139.127.120.0.2048.1368.png
Copy the SHA URL – you'll need this in the next step. The SHA URL is longer but it's what you'll use when you want to manipulate the image later.
Notice the numbers in the SHA filename? For images, the Media Server embeds colour and dimension information right in the filename: SHA.red.green.blue.alpha.width.height.extension. This helps the server process your image efficiently.
Step 3: Add the Image to a Screen
With your image uploaded, let's display it in your application.
Close the Project Settings dialog and click Screens in the left sidebar.
Select the screen where you want to add your image, or create a new screen.
In the Screen Controls panel on the right, find the Image control.
Drag the Image control onto your screen structure where you want the image to appear.
With the Image control selected, look at the Properties panel on the right. You'll see fields for Name and Image.
In the Image field, paste just the SHA filename portion—you don't need the full URL. For example:
The Toolkit automatically resolves this to the correct Media Server URL.
Once you've entered a valid image reference, an Image Preview appears below the field showing your image. This confirms the Toolkit found and loaded your image successfully. Click Save and Launch your project.

Your image is now part of your screen. When users view this screen in your app, they'll see the image you uploaded.
Step 4: Apply Image Manipulation Using a Content Control
Here's where the Media Server becomes powerful. Instead of opening an image editor to rotate your photo, you can apply transformations directly through the URL. To do this, you'll use a Content control with Markdown syntax rather than the Image control.
Go back to your screen in the Screens section.
From the Screen Controls panel, drag a Paragraph (Content) control onto your screen structure.
With the Content control selected, look at the Properties panel. You'll see a Markdown field.
Enter your image using Markdown image syntax, but this time construct the URL for graphics manipulation. Change
/u/d/to/u/g/and add your modifier at the end:
markdown
Click Save.
Launch your project. Your image now displays rotated 180 degrees!
Let's break down what changed in the URL:
/u/g/tells the Media Server you want to apply graphics manipulation (instead of/u/d/for direct access)$rotate/180at the end rotates the image 180 degrees
The Content control with Markdown gives you full control over image URLs, making it perfect for applying transformations. The Image control is simpler but doesn't support URL modifiers.
Step 5: Try More Transformations
Now that you understand how modifiers work, try these variations in your Content control's Markdown field:
Create a thumbnail (150 pixels):
markdown
Resize to exactly 300×200 pixels:
markdown
Resize to fit within 400×300 while keeping proportions:
markdown
Apply a vintage sepia effect:
markdown
Add a soft blur:
markdown
Combine multiple effects – just chain them together:
markdown
This creates a 300×300 thumbnail with sepia toning and a subtle blur, all from a single URL.
Step 6: Fix Mobile Photo Orientation
If you're building an app where users upload photos from their phones, you'll encounter a common problem: photos appear rotated incorrectly. This happens because phones store rotation data separately from the image itself.
The fix is simple. Add $autoOrient to your image URL in the Markdown:
markdown
This reads the photo's orientation data and rotates it correctly. For any user-uploaded mobile photos, this modifier should be your default.
Step 7: Upload to Other Environments
Your image works perfectly in Development. Now let's prepare it for QA testing.
Open Project Settings again.
This time, click the QA environment tab.
Click Media server in the sidebar.
Upload the same image file.
The image now exists in both Development and QA. When you're ready for production, repeat this process on the Production environment tab.
Your image URLs will work the same way in each environment—only the base URL changes. The SHA filename stays identical because it's based on the file contents, not where you uploaded it.
What You've Learned
You've completed a full workflow with the ComUnity Media Server:
You navigated to the Media Server through Project Settings, selecting your environment first.
You uploaded an image and discovered the two URL types—File URL for readable links and SHA URL for version integrity.
You added a simple image to a screen using the Image control with just the SHA filename.
You learned that the Content control with Markdown syntax lets you apply image manipulation by using
/u/g/URLs with modifiers.You applied transformations like rotation, resizing, and effects by adding modifiers to the URL.
You discovered
$autoOrientfor handling mobile uploads.You understood that each environment has its own Media Server, keeping development isolated from production.
Quick Reference
When you need to manipulate images, remember this pattern:
Common modifiers you'll use often:
$thumb/size– Create a thumbnail$resize/width/height/m– Resize maintaining aspect ratio$rotate/color/degrees– Rotate the image$crop/width/height– Crop to size$autoOrient– Fix mobile photo orientation$sepia– Vintage effect$blur/radius/sigma– Soften the image
The server caches your transformed images, so the first request does the processing and subsequent requests are served instantly.
Next Steps
Now that you're comfortable with the basics, try:
Using the
$drawTextmodifier to add watermarks to imagesCreating an icon set using the
/u/icon/path with custom coloursSetting up a content screen that displays user-uploaded photos with
$autoOrientapplied automatically
Last updated