Интерполяция ближайшего соседа с прозрачностьюC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Интерполяция ближайшего соседа с прозрачностью

Сообщение Anonymous »

Я новичок в C# и пытаюсь написать программу, которая помещает два прозрачных изображения одно поверх другого с помощью форм.

Размер изображений изменяется с использованием интерполяции ближайшего соседа. >
Проблема в том, что другая картинка просто перекрывает первую. Оба изображения имеют одинаковый размер и прозрачный фон.

Если вы планируете редактировать мой код, обязательно сохраните интерполяцию ближайшего соседа.

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

namespace MainForm {
public partial class MainForm : Form {
private PictureBox pb = new PictureBox() {
Dock=DockStyle.Fill,
SizeMode=PictureBoxSizeMode.CenterImage,
BackColor=Color.Transparent,
Visible=true
};

private PictureBox pb2 = new PictureBox() {
Dock=DockStyle.Fill,
SizeMode=PictureBoxSizeMode.CenterImage,
BackColor=Color.Transparent,
Visible=true
};

public MainForm() {
InitializeComponent();
icc();
}

private void icc() {
pb.SendToBack();
pb2.BringToFront();
this.Controls.Add(pb);
this.Controls.Add(pb2);
this.KeyPreview=true;
this.Load+=MainForm_Load;
}

private void MainForm_Load(object sender,EventArgs e) {
try {
pb.Image = rs(Image.FromFile("picture1.png"),pb.Width,pb.Height);
} catch(Exception ex) {
MessageBox.Show(ex.Message);
}
try {
pb2.Image = rs(Image.FromFile("picture2.png"),pb2.Width,pb2.Height);
} catch(Exception ex) {
MessageBox.Show(ex.Message);
}
}

private Image rs(Image i,int w,int h) {
Bitmap rsi = new Bitmap(w,h,PixelFormat.Format32bppArgb);
using(Graphics g = Graphics.FromImage(rsi)) {
g.Clear(Color.Transparent);
g.InterpolationMode=InterpolationMode.NearestNeighbor;
g.PixelOffsetMode=PixelOffsetMode.Half;
g.CompositingMode=CompositingMode.SourceOver;
g.DrawImage(i,new Rectangle(0,0,w,h));
}
return rsi;
}
}
}
Я пробовал использовать свойство BackColor=Color.Transparent, но это не помогло. То же самое с g.Clear(Color.Transparent); в функции rs. Кроме того, я пытался найти ответы на эту ошибку, но ничего не нашел.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ansparency
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Интерполяция ближайшего соседа
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Понижение/прореживание облака точек ближайшего соседа
    Anonymous » » в форуме Python
    0 Ответы
    82 Просмотры
    Последнее сообщение Anonymous
  • Как я могу классифицировать данные с помощью алгоритма ближайшего соседа, используя Python?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как работает поиск ближайшего соседа в KD-дереве?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как найти точки, которые сохраняют данное расстояние ближайшего соседа?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

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