Skip to content

[iOS, Mac] Fix for downsized image retaining original dimensions in GraphicsView #30007

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 18, 2025

Conversation

SyedAbdulAzeemSF4852
Copy link
Contributor

@SyedAbdulAzeemSF4852 SyedAbdulAzeemSF4852 commented Jun 16, 2025

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Issue Details

  • In GraphicsView, Downsized image retains original dimensions.
  • This issue also occurs on Windows and is resolved in this PR.

Root Cause

  • The ScaleImage method used the input image's original size (target.Size) when creating the renderer, which resulted in the output image retaining the original dimensions.

Description of Change

  • The renderer was updated to use the desired target size (size) instead of the original image size when creating the UIGraphicsImageRenderer. This ensures that the resulting image is actually created at the resized dimensions.

  • This PR caused a regression that led to the issue.

Issues Fixed

Fixes #30006

Validated the behaviour in the following platforms

  • Windows
  • Android
  • iOS
  • Mac

Output

Before Fix After Fix
Before.mov
After.mov

@dotnet-policy-service dotnet-policy-service bot added the community ✨ Community Contribution label Jun 16, 2025
Copy link
Contributor

Hey there @@SyedAbdulAzeemSF4852! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@dotnet-policy-service dotnet-policy-service bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Jun 16, 2025
@SyedAbdulAzeemSF4852 SyedAbdulAzeemSF4852 marked this pull request as ready for review June 16, 2025 14:04
@Copilot Copilot AI review requested due to automatic review settings June 16, 2025 14:04
@SyedAbdulAzeemSF4852 SyedAbdulAzeemSF4852 requested a review from a team as a code owner June 16, 2025 14:04
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes an issue where downsized images retained their original dimensions on iOS by using the desired target size when creating the image renderer, and adds UI tests to verify the behavior across platforms.

  • Use the provided size instead of target.Size when initializing UIGraphicsImageRenderer in ScaleImage.
  • Introduce a new UI test in TestCases.Shared.Tests to confirm the downsized image dimensions.
  • Add a HostApp page and embed the test image resource to exercise and validate the fix.

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

File Description
src/Graphics/src/Graphics/Platforms/iOS/UIImageExtensions.cs Changed renderer initialization to use size instead of target.Size.
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue30006.cs Added a UI test for verifying that downsized images have the expected dimensions.
src/Controls/tests/TestCases.HostApp/Issues/Issue30006.cs Created a HostApp page with buttons and labels to reproduce and validate the fix.
src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj Embedded royals.png as a resource for the HostApp test.
Comments suppressed due to low confidence (2)

src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue30006.cs:1

  • The test is conditionally compiled only when TEST_FAILS_ON_WINDOWS, which prevents it from running on Windows now that the bug is fixed. Please remove the #if...#endif directives so the test executes on all platforms.
#if TEST_FAILS_ON_WINDOWS // Issue Link - https://github.com/dotnet/maui/issues/16767

src/Controls/tests/TestCases.HostApp/Issues/Issue30006.cs:19

  • [nitpick] The variable name VerticalStackLayout conflicts with its type and uses PascalCase. Rename it to something like verticalStackLayout or layout for clarity.
VerticalStackLayout VerticalStackLayout = new VerticalStackLayout

@PureWeen PureWeen added this to the .NET 9 SR9 milestone Jun 16, 2025
@PureWeen PureWeen added the p/0 Work that we can't release without label Jun 16, 2025
@jsuarezruiz
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@PureWeen PureWeen requested review from mattleibow and removed request for jfversluis June 18, 2025 20:10
@github-project-automation github-project-automation bot moved this from Todo to Approved in MAUI SDK Ongoing Jun 18, 2025
@PureWeen PureWeen changed the base branch from main to inflight/current June 18, 2025 21:06
@PureWeen PureWeen merged commit 7560d62 into dotnet:inflight/current Jun 18, 2025
129 of 130 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Done in MAUI SDK Ongoing Jun 18, 2025
@PureWeen
Copy link
Member

/backport to release/9.0.1xx-sr8

Copy link
Contributor

Started backporting to release/9.0.1xx-sr8: https://github.com/dotnet/maui/actions/runs/15743655600

PureWeen pushed a commit that referenced this pull request Jun 21, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
PureWeen pushed a commit that referenced this pull request Jun 25, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
PureWeen pushed a commit that referenced this pull request Jun 25, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
github-actions bot pushed a commit that referenced this pull request Jun 26, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
github-actions bot pushed a commit that referenced this pull request Jun 26, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
PureWeen pushed a commit that referenced this pull request Jun 27, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
github-actions bot pushed a commit that referenced this pull request Jun 27, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
PureWeen pushed a commit that referenced this pull request Jun 27, 2025
…raphicsView (#30007)

* [iOS] Fix for downsized image retains original size

* Renamed variables for better readability
PureWeen added a commit that referenced this pull request Jun 28, 2025
For more information about inflight process check
https://github.com/dotnet/maui/wiki/Inflight-Branch-Process

# .NET MAUI Release Notes - Inflight/Candidate Branch

## What's Changed

### MAUI Product Fixes
* [iOS] CarouselView with CarouselViewHandler2 make app crash when
Loop="False" and user scroll to the last position - fixes #26863 by
@kubaflo in #26868
* Fixes Setting BackgroundColor to null does not actually changes
BackgroundColor - fixes #22914 and #19576 by @jgonzalez-gft in
#22917
* Fixed the picker title's color - fixes #16737 by @kubaflo in
#23075
* [android] Fallback to default icons in SearchHandler by @aheubusch in
#25067
* ScrollView's Background on iOS - fixes #24016 by @kubaflo in
#25541
* [iOS] Enabled MultiTouch Support for Handling Multi-Touch Points in
GraphicsView - fixes #29461 by @prakashKannanSf3972 in
#29895
* Optimize converters for GridLength, ColumnDefinition, and
RowDefinition - performance improvement by @emiller in
#20048
* Add defensive IsAlive check to Android ViewExtensions.OnUnloaded -
fixes #28051 by @jfversluis in #29934
* [Windows] Fixed runtime update issue for SearchBar PlaceholderColor
and BackgroundColor - fixes #29962 by @Tamilarasan-Paranthaman in
#29965
* Weak subscription to CanExecuteChange events - fixes #16124 by
@sneumaier in #29837
* [iOS, Mac] Fix for downsized image retaining original dimensions in
GraphicsView - fixes #30006 by @SyedAbdulAzeemSF4852 in
#30007
* [Android] Prevent Picker from Gaining Focus on Touch - fixes #19739,
#8546, #13503, #24862, #28121, #21704, #15394 by @bhavanesh2001 in
#29068
* Fix CV1 GridItemsLayout centering single item AND Fix Empty view not
resizing when bounds change - fixes #29595, #29634 by @albyrock87 in
#29639

### Testing
* [Testing] Feature Matrix UITest Cases for Button by @TamilarasanSF4853
in #29803
* [Testing] Feature matrix UITest Cases for BoxView Control by
@HarishKumarSF4517 in #29808
* [Testing] Enable HandlerDoesNotLeak for Button and ProgressBar by
@bhavanesh2001 in #29896
* [Testing] Add Validation Test For Issue28051 On Android by
@prakashKannanSf3972 in #30026
* [Testing] Fixed Test case failure in PR 30115 - [2025/06/23] Candidate
by @HarishKumarSF4517 in #30136

### Dependency Updates
* Bump to 1.7.250606001 of WindowsAppSDK by @sneumaier in
#29915

### Housekeeping
* [housekeeping] Update namespaces in HostApp and Shared tests projects
by @bhavanesh2001 in #29904
* Update SetterSpecificity.cs Remove Extra Line From Bad Merge by
@sneumaier in #29987
* Revert - Fixed the Label not sized correctly on Android by @Ahamed-Ali
in #30023
* Revert "Fixes Setting BackgroundColor to null does not actually
changes BackgroundColor #22914 (#22917)" by @mattleibow in
#30031
* [create-pull-request] automated change by @github-actions[bot] in
#30019
* [create-pull-request] automated change by @github-actions[bot] in
#30043
* [create-pull-request] automated change by @github-actions[bot] in
#30078
* Update Controls.TestCases.HostApp.csproj by @HarishKumarSF4517 in
#30124

## New Contributors
* @albyrock87 made their first contribution in
#29639
* @SyedAbdulAzeemSF4852 made their first contribution in
#30007
* @emiller made their first contribution in
#20048
* @jgonzalez-gft made their first contribution in
#22917
* @aheubusch made their first contribution in
#25067

**Full Changelog**:
https://github.com/dotnet/maui/compare/main..inflight/candidate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community ✨ Community Contribution p/0 Work that we can't release without partner/syncfusion Issues / PR's with Syncfusion collaboration platform/ios
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[iOS] In GraphicsView, Downsized image retains original dimensions
4 participants