Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4172722
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T00:35:50+00:00 2026-05-21T00:35:50+00:00

This is a follow up question on Save image to file keeping aspect ration

  • 0

This is a follow up question on Save image to file keeping aspect ration in a WPF app

I know howto scale the image, but how do I expand the canvas size, to ensure the image still has the requested width and height. In this example its 250×250 but its dynamic.

I have created this illustration to show what I’m trying to accomplice.
alt text

I can’t find any way of expanding the canvas of an BitmapImage, nor a way to create an in memory image in the correct size, with a transparent background, and then merging the two images together.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T00:35:51+00:00Added an answer on May 21, 2026 at 12:35 am

    CroppedBitmap doesn’t seem to support adding space around an image so instead you can create a transparent image the correct size using WriteableBitmap. If the input is smaller than the target size this method will enlarge it, but that is easy to alter.

    public static BitmapSource FitImage(BitmapSource input, int width, int height)
    {
        if (input.PixelWidth == width && input.PixelHeight == height)
            return input;
    
        if(input.Format != PixelFormats.Bgra32 || input.Format != PixelFormats.Pbgra32)
            input = new FormatConvertedBitmap(input, PixelFormats.Bgra32, null, 0);
    
        //Use the same scale for x and y to keep aspect ratio.
        double scale = Math.Min((double)width / input.PixelWidth, height / (double)input.PixelHeight);
    
        int x = (int)Math.Round((width - (input.PixelWidth * scale))/2);
        int y = (int)Math.Round((height - (input.PixelHeight * scale))/2);
    
    
        var scaled = new TransformedBitmap(input, new ScaleTransform(scale, scale));
        var stride = scaled.PixelWidth * (scaled.Format.BitsPerPixel / 8);
    
        var result = new WriteableBitmap(width, height, input.DpiX, input.DpiY, input.Format,null);
    
        var data = new byte[scaled.PixelHeight * stride];
        scaled.CopyPixels(data, stride, 0);
        result.WritePixels(new Int32Rect(0,0,scaled.PixelWidth,scaled.PixelHeight), data, stride,x,y);
        return result;
    }
    

    If you are already rendering content using RenderTargetBitmap you could wrap it in a ViewBox to do the scaling but if you’re just working with normal images I’d use the above method.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This is a follow on question to How do I delete 1 file from
Update: Check out this follow-up question: Gem Update on Windows - is it broken?
This is a follow-on question to the How do you use ssh in a
This is a follow up question to This Question . I like (and understand)
This is a follow up question . So, Java store's integers in two's-complements and
This is a follow-up question to this one . Take a look at these
This is somewhat of a follow-up question to this question . Suppose I have
This is kind of a follow-up question to this . When I'm debugging threads
This is a follow-up to the question: Should the folders in a solution match
This is a follow on to this question . I am trying to avoid

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.