私はC#に非常に慣れていません(今日始めたばかりです)
キャンバス ハンドラーを使用して C# イメージ リサイザーを作成できるようにする必要があります。たとえば、500 x 500 の画像は縦横比を維持する必要があります。1024x500 にサイズ変更されます。これを行うには、500x500 のままにしますが、残りのスペースを空白 (キャンバス) で埋めます。
また、同じ元の画像のサイズを 300 x 500 に変更します。この場合、画像は再び 1:1 の比率を保持し、300x300 にサイズ変更され、残りのスペースは再びキャンバスの余白として使用されます。
私が理解できるこのためのC#コンソールアプリケーションを作成するのを手伝ってくれる人はいますか?
これは、私が合理的に理解できることがわかったものです(コメントが良かったため)。
私がコードで見つけたのは、それを読むことができるということですが、実際に何かを書くことになると、私はただバラバラになります。主にHTMLとCSSを担当しています。JQuery と C# への分岐を開始
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Imaging;
namespace ImageResizer
{
class ImageResize
{
static void Main(string[] args)
{
}
public void ResizeImage(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
{
System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(OriginalFile);
// Prevent using images internal thumbnail
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
if (OnlyResizeIfWider)
{
if (FullsizeImage.Width <= NewWidth)
{
NewWidth = FullsizeImage.Width;
}
}
int NewHeight = FullsizeImage.Height * NewWidth / FullsizeImage.Width;
if (NewHeight > MaxHeight)
{
// Resize with height instead
NewWidth = FullsizeImage.Width * MaxHeight / FullsizeImage.Height;
NewHeight = MaxHeight;
}
System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(NewWidth, NewHeight, null, IntPtr.Zero);
// Clear handle to original file so that we can overwrite it if necessary
FullsizeImage.Dispose();
// Save resized picture
NewImage.Save(NewFile);
}
}
}