Solved

Need some help with System.Drawing.PointF or System.Drawing...

Posted on 2008-06-25
2
597 Views
Last Modified: 2010-05-18
Hi... Me again...

I have HTTPHandler method that draws a watermark ontop of my product images. Slightly modified from this article to fit my HTTPHandler ( http://blog.donnfelker.com/2007/09/18/WatermarkingImagesInASPNETWithAnHttpHandler.aspx )

I want to make the watermark display ontop the image in a angle, from top left to bottom right... Also want it to extend the length of the image and never overlap?

Anyone know how i can do that?

Nugs
protected static System.Drawing.Image WatermarkImage(System.Drawing.Image image, string watermark)

    {

        Graphics graphic;

        if (image.PixelFormat != PixelFormat.Indexed && image.PixelFormat != PixelFormat.Format8bppIndexed && image.PixelFormat != PixelFormat.Format4bppIndexed && image.PixelFormat != PixelFormat.Format1bppIndexed)

        {

            graphic = Graphics.FromImage(image);

        }

        else

        {

            Bitmap indexedImage = new Bitmap(image);

            graphic = Graphics.FromImage(indexedImage);
 

            graphic.DrawImage(image, 0, 0, image.Width, image.Height);

            image = indexedImage;

        }

        graphic.SmoothingMode = SmoothingMode.AntiAlias & SmoothingMode.HighQuality;
 

        Font myFont = new Font("Arial", 10, FontStyle.Bold);

        SolidBrush brush = new SolidBrush(Color.FromArgb(80, Color.White));

        SizeF textSize = graphic.MeasureString(watermark, myFont);
 

        //WRITE THE TEXT ACROSS THE IMAGE. 

        //for (int y = 0; y < image.Height; y++)

        //{

        //    for (int x = 0; x < image.Width; x++)

        //    {

        PointF pointF = new PointF(0, image.Height / 2);

        graphic.DrawString(watermark, myFont, brush, pointF);

        //        x += Convert.ToInt32(textSize.Width);

        //    }

        //    y += Convert.ToInt32(textSize.Height);

        //}
 

        return image;

    }

Open in new window

0
Comment
Question by:Nugs
2 Comments
 
LVL 2

Author Comment

by:Nugs
ID: 21869448
Ok i managed to get the 45 degree angle. But how to i scale the text to fit the size of the image?

Nugs
    protected static System.Drawing.Image WatermarkImage(System.Drawing.Image image, string watermark)

    {

        Graphics graphic;

        if (image.PixelFormat != PixelFormat.Indexed && image.PixelFormat != PixelFormat.Format8bppIndexed && image.PixelFormat != PixelFormat.Format4bppIndexed && image.PixelFormat != PixelFormat.Format1bppIndexed)

        {

            graphic = Graphics.FromImage(image);

        }

        else

        {

            Bitmap indexedImage = new Bitmap(image);

            graphic = Graphics.FromImage(indexedImage);
 

            graphic.DrawImage(image, 0, 0, image.Width, image.Height);

            image = indexedImage;

        }

        graphic.SmoothingMode = SmoothingMode.AntiAlias & SmoothingMode.HighQuality;
 

        Font myFont = new Font("Arial", 10, FontStyle.Bold);

        SolidBrush brush = new SolidBrush(Color.FromArgb(80, Color.White));

        Rectangle rectan = new Rectangle(0, 0, image.Width, image.Height);
 

        graphic.FillRectangle(Brushes.Transparent, rectan);

        graphic.DrawString(watermark, myFont, brush, 0, 0);

        graphic.RotateTransform(45);

        graphic.DrawString(watermark, myFont, brush, 0, 0);

        

        return image;

    }

Open in new window

0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 21874203
I would think, on the surface, that you need to find a ScaleTransform ratio that gives you the "stretch" that you need.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now