私はモノグラムプロジェクト用にWindowsフォームを使用してレベルエディタを作成しようとしています。モノグラムでこれを行う必要があるときは、描画タイプをPointClampに設定して、各ピクセルを拡大してピクセル化するのではなく描画します。私はこのようなことを絵の箱を介して望んでいました。今のところそれはthisのように見えますが、私はthisのようなより鮮明できれいな画像を好むでしょう(2番目はモノゲームでどのように表示されるかです)。私はこれのためのコードをアップロードしていないが、ファイルストリームからイメージを取得し、それを拡大するためにビットマップコンストラクタを使用したと仮定します(関連性はないと思いますが、CSharp WindowsフォームPicturebox画質の低下なしで小さな画像を描画
Image croppedImage, image = tileMap.tileBox.Image;
var brush = new SolidBrush(Color.Black);
try { croppedImage = CropImage(image, tileMap.highlightedRect); } catch {
return; // If crop target is outside bounds of image then return
}
float scale = Math.Min(higlightedTileBox.Width/croppedImage.Width, higlightedTileBox.Height/image.Height);
var scaleWidth = (int)(higlightedTileBox.Width * scale);
var scaleHeight = (int)(higlightedTileBox.Height * scale);
try { higlightedTileBox.Image = new Bitmap(croppedImage, new Size(scaleWidth, scaleHeight)); } catch {
return; // Image couldn't be scaled or highlighted tileBox couldn't be set to desired image
}
CropImage:
private static Image CropImage(Bitmap img, Rectangle cropArea) {
return img.Clone(cropArea, img.PixelFormat);
}
private static Image CropImage(Image img, Rectangle cropArea) {
return CropImage(new Bitmap(img), cropArea);
}
上記のコードは、それの全体が私の現在の方法です。 tileMapはフォームで、tileboxはそのフォーム内のピクチャボックスです.imageは、ユーザが強調表示したものに切り取られる前のフルスプライトシートのテクスチャです。クロップされた後、私は、現在のピクチャボックス(highlightedTileBoxの)イメージをクロップされたイメージの拡大版に設定しようとします。
さらにコードが必要です。 – leAthlon
よろしくお願いします。 –
@leAthlonもっとコードを追加しました:) –