Use WebImage.AddTextWatermark when you already have a screenshot in classic ASP.NET Web Pages. Load the file, apply the text, save a new writable file, and render that saved path with an <img> element. For logos, repeated patterns, or exact placement, draw onto a bitmap with Graphics.DrawString and Graphics.DrawImage. If the screenshot is being generated remotely, apply the watermark during capture with a service that supports watermark options.
Choose the watermarking point
There are two practical designs:
- Post-process an existing screenshot: your ASP.NET application opens a PNG, JPEG, or other supported image, draws text or a logo, then saves or returns the modified image.
- Watermark during capture: a screenshot service creates the image and applies a configured watermark as part of the capture request.
Post-processing gives you local control and works when the screenshot already exists. Capture-time watermarking avoids a second image-processing step when a hosted capture API is already in your workflow.
Fastest classic ASP.NET Web Pages method: WebImage
Microsoft’s classic ASP.NET Web Pages API exposes AddTextWatermark, which adds text directly to a WebImage. Its documented parameters are text, font color, size, style, family, horizontal and vertical alignment, opacity, and padding:
WebImage AddTextWatermark(
string text,
string fontColor = "Black",
int fontSize = 12,
string fontStyle = "Regular",
string fontFamily = "Microsoft Sans Serif",
string horizontalAlign = "Right",
string verticalAlign = "Bottom",
int opacity = 100,
int padding = 5)
The following Razor page follows the documented flow. It reads Images/Screenshot.png, adds a semi-transparent copyright notice in the lower-right corner, writes a new file, and displays that new path.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
@{
var imagePath = "";
var photo = new WebImage(@"~\Images\Screenshot.png");
if (photo != null)
{
imagePath = @"images\Screenshot-watermarked.png";
photo.AddTextWatermark(
"© Example.com",
fontColor: "White",
fontFamily: "Arial",
opacity: 70,
horizontalAlign: "Right",
verticalAlign: "Bottom",
padding: 10);
photo.Save(@"~\" + imagePath);
}
}

Save the result to a different filename unless overwriting the source is intentional. The destination must be writable; a read-only file or directory prevents the save. Render the saved path, not the original screenshot, or the browser will continue showing the unmodified image.
Adjusting the built-in text watermark
fontColorandfontFamilycontrol the basic appearance.fontSizecontrols text size.horizontalAlignaccepts placement such asLeft,Center, orRight.verticalAlignaccepts placement such asTop,Middle, orBottom.opacitylets the screenshot remain visible beneath the text; the documented default is 100.paddingseparates the watermark from the image edge.
Use a contrasting color and enough padding to keep the notice readable without covering controls or text that the screenshot is meant to document.
Return a watermarked image from an ASP.NET handler
If the image should be downloaded or displayed from an endpoint rather than written into a public folder, the same sequence applies: load, modify, encode, and return the resulting bytes. Keep the writable image in memory or save it to a controlled temporary location, then set the response content type to match the encoded format. The important ordering is that the watermark is applied before the response is sent; returning the original stream first cannot be corrected by changing HTML afterward.
For a page that saves a file, verify the application identity can write to the destination directory. For an endpoint, ensure the output stream remains open until encoding completes and dispose image-related objects according to the imaging library’s lifetime rules.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
When you need a logo or exact placement
AddTextWatermark is convenient, but it is intentionally a high-level helper. Use lower-level graphics operations when the watermark is a logo, must be scaled to a specific rectangle, needs a repeated pattern, or requires custom alignment.
- Decode the uploaded or generated screenshot.
- Create a writable bitmap or graphics surface over it.
- Choose a font and brush for text, or load the logo bitmap.
- Draw the watermark while keeping important screenshot content visible.
- Encode the result as the required PNG, JPEG, or WebP output and save or return it.
- Dispose the image, graphics surface, font, brush, and streams according to the selected library’s lifetime rules.
Text with Graphics.DrawString
Graphics.DrawString accepts a string, a Font, a Brush, and either a point or rectangle. A StringFormat can control alignment and other formatting. A rectangle is useful when the text must wrap or align inside a defined watermark area.
using System.Drawing;
using System.Drawing.Drawing2D;
public static Bitmap AddText(Bitmap source)
{
var result = new Bitmap(source);
using (var graphics = Graphics.FromImage(result))
using (var font = new Font("Arial", 18, FontStyle.Regular))
using (var brush = new SolidBrush(Color.FromArgb(180, Color.White)))
using (var format = new StringFormat {
Alignment = StringAlignment.Far,
LineAlignment = StringAlignment.Far
})
{
var area = new RectangleF(10, 10, result.Width - 20, result.Height - 20);
graphics.DrawString("© Example.com", font, brush, area, format);
}
return result;
}
The alpha value in Color.FromArgb makes the brush translucent. Adjust the rectangle rather than hard-coding a single point when screenshots have different dimensions.
Logo watermark with Graphics.DrawImage
Use Graphics.DrawImage when the watermark is an image. Its destination-rectangle overload places and scales the logo to fit the rectangle.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
using System.Drawing;
public static Bitmap AddLogo(Bitmap source, string logoPath)
{
var result = new Bitmap(source);
using (var logo = Image.FromFile(logoPath))
using (var graphics = Graphics.FromImage(result))
{
var width = Math.Min(logo.Width, result.Width / 4);
var height = (int)((double)logo.Height / logo.Width * width);
var destination = new Rectangle(
result.Width - width - 16,
result.Height - height - 16,
width,
height);
graphics.DrawImage(logo, destination);
}
return result;
}
Choose a destination rectangle that preserves the logo’s aspect ratio. For a transparent logo, use an image format that preserves transparency when you encode the final result.
Design choices that prevent unreadable or misleading watermarks
- Placement: corners are usually least disruptive, but inspect the screenshot first; a corner may contain a key button or status badge.
- Contrast: use a light brush on a dark region or a dark brush on a light region. A translucent background strip can improve consistency across varied pages.
- Opacity: lower opacity for attribution that should not dominate; keep enough contrast for accessibility and later review.
- Scale: choose font and logo dimensions relative to the screenshot rather than assuming every capture has the same viewport.
- Format: preserve the format needed by the consumer. Re-encoding a screenshot can change file size and image quality, so encode deliberately.
- Privacy: never use a watermark as a substitute for removing secrets, tokens, personal data, or credentials from the screenshot.
Capture-time watermarking with a hosted API
If your application obtains screenshots from a remote capture service, configure the watermark in the capture options instead of downloading and processing every image locally. GrabzIt’s ASP.NET documentation describes custom watermark identifiers for image, animation, video, and PDF captures. It also lists timestamp, text, counter, and browser-window watermarks. This model is useful when each capture needs an automatically generated timestamp or counter, or when the same watermark policy must apply to several output types.
Choose post-processing when you need application-specific drawing or already have the image. Choose capture-time processing when watermark metadata belongs to the capture job and should be applied consistently before the result reaches your application.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. It can capture a clean PNG, JPEG, WebP, or PDF with one request; you can then apply your ASP.NET watermarking code to the returned image if you need custom text or logo composition. Before capture, it accepts the cookie or consent banner like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets. Each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf to Claude, Cursor, and other MCP clients.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Use the API base documented at https://screenshotneo.com/docs/:
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
The returned file can be fed into the same WebImage or graphics pipeline shown above. ScreenshotNeo also supports full-page capture with lazy images loaded, CSS-selector element capture, dark mode, 12 device presets plus custom viewports, retina scale, PDF paper sizes and page ranges, custom CSS and JavaScript, clicks, selector or network-idle waits, request and resource blocking, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, configurable-TTL caching, signed image links, asynchronous jobs with signed webhooks, bulk capture of 100 URLs per call, a usage API, and an OpenAPI specification. Existing integrations can use the parameter names common to other screenshot APIs.
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
The Free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is on every plan, and yearly billing gives two months free. Create a free ScreenshotNeo account to try the capture step before adding your ASP.NET watermark.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting
The output is unchanged
Check that the watermark call runs before Save or response encoding, and that the HTML points to the newly saved path. Rendering the original URL will show the original image.
Save fails with an access or read-only error
Use a writable destination and grant the ASP.NET application identity write permission. Do not assume that a readable source directory is also writable.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
The watermark is clipped
Increase padding or enlarge the drawing rectangle. With DrawString, reserve a rectangle large enough for the selected font and text; with a logo, calculate the destination dimensions from the source aspect ratio.
The text is hard to read
Change the brush color, opacity, font size, or placement. A watermark that crosses a bright and dark background may need a contrasting backing shape rather than opacity alone.
The logo covers important content
Move it after inspecting the target layout, reduce its destination rectangle, or capture a different region. A watermark should identify the image without obscuring the evidence it is meant to preserve.
Free tools Windows power users keep installed
One-click scans. No signup required.
Remote captures contain popups or consent UI
Use capture options that dismiss consent and remove known overlays, or use ScreenshotNeo’s clean-shot workflow before applying your local watermark. Check the response’s X-Page-Verdict and X-Billed headers when diagnosing failed or non-clean captures.
Operational checklist
- Load the intended screenshot and verify the source exists.
- Choose text helper, custom graphics, or capture-time watermarking.
- Keep the destination writable and use a distinct output path when appropriate.
- Place the watermark where it does not hide meaningful UI.
- Set color, opacity, font, logo scale, and output format deliberately.
- Dispose image, graphics, font, brush, and stream resources.
- Render or return the modified output, not the source.
- Inspect the final image at its actual delivery size.
Frequently Asked Questions
Can I watermark a PDF captured from ASP.NET?
Yes, a capture-time service such as GrabzIt documents watermark options for PDF captures. The WebImage and Graphics examples here operate on raster images, so use a PDF-capable workflow when the output is a PDF.
Should I overwrite the original screenshot?
Usually save a separate watermarked file so the unmodified source remains available for later processing or auditing.
Which method is best for a repeated diagonal watermark?
Use lower-level graphics drawing so you can place the text repeatedly at chosen points and angles; AddTextWatermark is intended for a single aligned text watermark.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

