@TomYol

Как ускорить методы getpixel и setpixel?

В моём приложении несколько битмапов и всё они большого разрешения. При использовании getpixel/setpixel, приложение лагает. Можно ли как-то ускорить либо заменить эти методы. В инете много инфы на эту тему, но так и не нашёл понятного для меня способа? Читал про Lockbitmap, нашёл класс, который его использует. Вроде как правильно подключил, но изменений не увидел. Может кто-то подробно объяснить, как я могу ускорить getpixel/setpixel в моём проекте?

public static Bitmap myBitmap = new Bitmap("img\\BigMap.png");
        public static Bitmap myBitmapScale1 = new Bitmap("img\\BigMap.png");
        public static Bitmap myBitmapScale2 = new Bitmap("img\\BigMapScale2.png");

public void pictureBox1_Click(object sender, EventArgs e)
        {
            //получение цвета нажатого пикселя
            MouseEventArgs rato = e as MouseEventArgs;
            int x = rato.X * myBitmap.Width / pictureBox1.ClientSize.Width;
            int y = rato.Y * myBitmap.Height / pictureBox1.ClientSize.Height;
            Color backColor = myBitmap.GetPixel(x, y);
            string hex = backColor.R.ToString("X2") + backColor.G.ToString("X2") + backColor.B.ToString("X2");
          }


private void darkmode_Click(object sender, EventArgs e)
        {
            for (var x = 0; x < myBitmap.Width; x++)
                for (var y = 0; y < myBitmap.Height; y++)
                {
                    var pixel = myBitmap.GetPixel(x, y);
                    if (pixel.R == 176 && pixel.G == 244 && pixel.B == 254)
                        myBitmap.SetPixel(x, y, Color.DarkGray);
 
                }
            
        }
  • Вопрос задан
  • 564 просмотра
Пригласить эксперта
Ответы на вопрос 1
samodum
@samodum
Какой вопрос - такой и ответ
Первый же запрос в гугле даёт ответ:
https://stackoverflow.com/questions/24701703/c-sha...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы