dotnet/winforms
Voir sur GitHubIcon.Save(stream) each time returns different results
Open
#8 853 ouverte le 2 déc. 2021
area-System.Drawinghelp wanted
Métriques du dépôt
- Stars
- (4 100 stars)
- Métriques de merge PR
- (Merge moyen 14j 22h) (56 PRs mergées en 30 j)
Description
Description
We use the following code to compare two icons:
private static bool IconEquals(Icon icon1, Icon icon2) {
var stream1 = new System.IO.MemoryStream();
icon1.Save(stream1);
var stream2 = new System.IO.MemoryStream();
icon2.Save(stream2);
return System.Linq.Enumerable.SequenceEqual(stream1.ToArray(), stream2.ToArray());
}
With the net6.0 release the stream.ToArray() method each time returns different results for the same Icon. You can modify the IconEquals as follows and it will return false:
private static bool IconEquals(Icon icon1) {
var stream1 = new System.IO.MemoryStream();
icon1.Save(stream1);
var stream2 = new System.IO.MemoryStream();
icon1.Save(stream2);
return System.Linq.Enumerable.SequenceEqual(stream1.ToArray(), stream2.ToArray());
}
Reproduction Steps
Launch the following code with any Icon:
private static bool IconEquals(Icon icon1) {
var stream1 = new System.IO.MemoryStream();
icon1.Save(stream1);
var stream2 = new System.IO.MemoryStream();
icon1.Save(stream2);
return System.Linq.Enumerable.SequenceEqual(stream1.ToArray(), stream2.ToArray());
}
Expected behavior
The IconEquals method should return true.
Actual behavior
The IconEquals method returns false.
Regression?
Works on net5.0
Known Workarounds
No response
Configuration
Windows 10
Other information
No response