mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-08 05:53:27 +00:00
Imageextentions - Added GraphicsConfig to be used in the Resize Method
This commit is contained in:
@@ -107,7 +107,16 @@ namespace PckStudio.Classes.Extentions
|
||||
return new Size(width, heigh);
|
||||
}
|
||||
|
||||
public static Image ResizeImage(this Image image, int width, int height)
|
||||
public struct GraphicsConfig
|
||||
{
|
||||
public CompositingMode CompositingMode { get; set; }
|
||||
public CompositingQuality CompositingQuality { get; set; }
|
||||
public InterpolationMode InterpolationMode { get; set; }
|
||||
public SmoothingMode SmoothingMode {get; set; }
|
||||
public PixelOffsetMode PixelOffsetMode { get; set; }
|
||||
}
|
||||
|
||||
public static Image ResizeImage(this Image image, int width, int height, GraphicsConfig graphicsConfig)
|
||||
{
|
||||
var destRect = new Rectangle(0, 0, width, height);
|
||||
var destImage = new Bitmap(width, height);
|
||||
@@ -116,11 +125,11 @@ namespace PckStudio.Classes.Extentions
|
||||
|
||||
using (var graphics = Graphics.FromImage(destImage))
|
||||
{
|
||||
graphics.CompositingMode = CompositingMode.SourceCopy;
|
||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||
graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
|
||||
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
||||
graphics.CompositingMode = graphicsConfig.CompositingMode;
|
||||
graphics.CompositingQuality = graphicsConfig.CompositingQuality;
|
||||
graphics.InterpolationMode = graphicsConfig.InterpolationMode;
|
||||
graphics.SmoothingMode = graphicsConfig.SmoothingMode;
|
||||
graphics.PixelOffsetMode = graphicsConfig.PixelOffsetMode;
|
||||
|
||||
using (var wrapMode = new ImageAttributes())
|
||||
{
|
||||
|
||||
@@ -1027,17 +1027,26 @@ namespace PckStudio.Forms
|
||||
{
|
||||
var ms = new MemoryStream(skinTexture.Data);
|
||||
Bitmap saveSkin = new Bitmap(Image.FromStream(ms));
|
||||
var config = new ImageExtentions.GraphicsConfig()
|
||||
{
|
||||
CompositingMode = CompositingMode.SourceCopy,
|
||||
CompositingQuality = CompositingQuality.HighQuality,
|
||||
InterpolationMode = InterpolationMode.NearestNeighbor,
|
||||
SmoothingMode = SmoothingMode.HighQuality,
|
||||
PixelOffsetMode = PixelOffsetMode.HighQuality,
|
||||
};
|
||||
|
||||
if (saveSkin.Width == saveSkin.Height)
|
||||
{
|
||||
saveSkin.ResizeImage(64, 64);
|
||||
saveSkin.ResizeImage(64, 64, config);
|
||||
}
|
||||
else if (saveSkin.Height == saveSkin.Width / 2)
|
||||
{
|
||||
saveSkin.ResizeImage(64, 32);
|
||||
saveSkin.ResizeImage(64, 32, config);
|
||||
}
|
||||
else
|
||||
{
|
||||
saveSkin.ResizeImage(64, 64);
|
||||
saveSkin.ResizeImage(64, 64, config);
|
||||
}
|
||||
saveSkin.Save(root + "/" + skinTexture.Filename, ImageFormat.Png);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user