Размер изображений изменяется с использованием интерполяции ближайшего соседа. >
Проблема в том, что другая картинка просто перекрывает первую. Оба изображения имеют одинаковый размер и прозрачный фон.
Если вы планируете редактировать мой код, обязательно сохраните интерполяцию ближайшего соседа.
Код: Выделить всё
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;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ansparency