Нарезанные изображения в C# Winforms показывают некоторые линии кровотечения/артефакты в редакторе Unity. Как удалить этC#

Место общения программистов C#
Ответить
Anonymous
 Нарезанные изображения в C# Winforms показывают некоторые линии кровотечения/артефакты в редакторе Unity. Как удалить эт

Сообщение Anonymous »

Я использую C# и Winforms на .net 8.0. < /p>
В своем приложении я загружаю изображение и автоматически добавляется в сетку. Затем я могу дважды щелкнуть, чтобы выбрать, какие части изображения нарезают. Я установил, где его сохранить.
На этом скриншоте я выбираю нарезать две верхние ячейки сетки:
necksckg4u.jpg ". Сохранение:

в краске, если я редактирую нарезанные изображения, я не вижу ни одного артифакта, не видя, не видно, что не видно, что не видно, не видно, что не видно, что не видно, не видно, что не видно, не видно, не видно, что не видно, не видно, что не видно, не видно, что не видно, не видно, что нет. Артефакты линии кровоточащих линий ". src = "https://i.sstatic.net/qsmpaydn.jpg"/>
Затем я перетаскиваю изображение в редактор Unity и изменяет настройки в инспекторе. alt = "Линии слева и над Pacman" src = "https://i.sstatic.net/jtfpsmhf.jpg"/>
Как я могу его исправить, чтобы линии там не было? Если я изменяю изображение с режима Sprite Single на несколько, то я вообще не вижу Pacman.

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace ImageSlicerApp
{
public class ImageGridViewer : Control
{
public Bitmap? SourceImage
{
get => sourceImage;
set
{
sourceImage = value;
UpdateCachedImage();
Invalidate();
}
}

public int GridCols { get; set; } = 2;
public int GridRows { get; set; } = 2;
public Rectangle GridArea { get; set; } = new(100, 100, 256, 256);
public HashSet
 SelectedCells { get; private set; } = new();

private Bitmap? sourceImage;
private Bitmap? cachedScaledImage;
private bool dragging = false;
private Point dragStart;

private BufferedGraphicsContext context;
private BufferedGraphics? buffer;

public ImageGridViewer()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint
| ControlStyles.OptimizedDoubleBuffer
| ControlStyles.ResizeRedraw
| ControlStyles.UserPaint, true);

this.DoubleBuffered = true;

context = BufferedGraphicsManager.Current;
ResetBuffer();

this.Resize += (_, _) => {
ResetBuffer();
UpdateCachedImage();
Invalidate();
};

if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
{
this.MouseDoubleClick += OnMouseDoubleClick;
this.MouseDown += OnMouseDown;
this.MouseMove += OnMouseMove;
this.MouseUp += OnMouseUp;
}

this.Size = new Size(800, 600);
}

private void ResetBuffer()
{
buffer?.Dispose();

if (this.Width > 0 && this.Height >  0)
buffer = context.Allocate(this.CreateGraphics(), this.ClientRectangle);
}

private void UpdateCachedImage()
{
if (SourceImage == null || Width 

Подробнее здесь: [url]https://stackoverflow.com/questions/79687497/slicing-images-in-c-sharp-winforms-shows-some-bleeding-lines-artifacts-in-unity[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»