Я работаю над приложением окна телефона. Я хочу стереть фон изображения. Я использую для этого метод setpixel(). Но это стирание фона очень медленно. Вот мой код.SetPixel() слишком медленно, чтобы стереть фон изображения
private void Canvas_MouseMove_1(object sender, System.Windows.Input.MouseEventArgs e)
{
wrt = new WriteableBitmap(imag, null);
try
{
System.Windows.Media.Color c = new System.Windows.Media.Color();
c.A = 0;
c.B = 0; c.R = 0; c.G = 0;
currentPoint = e.GetPosition(this.imag);
for (int degrees = 0; degrees <= 360; degrees++)
{
for (int distance = 0; distance <= erasersize; distance++)
{
//double angle = Math.PI * degrees/180.0;
double x = currentPoint.X + (distance * Math.Cos(degrees));
double y = currentPoint.Y + (distance * Math.Sin(degrees));
wrt.SetPixel(Convert.ToInt32(x), Convert.ToInt32(y) - offset, c);
}
}
}
Я искал много статей в google, но никто не работал на меня. Мне предложили один из методов Bitmap.LockBits. Но проблема в том, что мы не можем добавить system.drawing в приложение windows phone, потому что dll не поддерживается. Может ли кто-нибудь помочь мне решить эту проблему. Спасибо заранее.
вы просто пытаетесь исчезнуть или удалить изображение. Если это так, вы используете анимацию для установки уровня непрозрачности изображения. –
@WaltRitscher Спасибо за ответ. Фактически я должен удалить фон изображения и сохранить часть изображения, в котором я могу использовать другой фон. Мой код стирает фон, но setpixel() работает медленно, поэтому я не могу добиться качества ластика, что мне действительно нужно .... – Pawan