x = arround 5000 및 y = arround 13 값이있는 행렬 [y] [x] 있습니다. 그리고 이미지에 다른 색상 (값에 따라 다름)을 표시해야합니다.C# - 이미지의 픽셀 표시
내 문제 : 이미지가 매트릭스보다 훨씬 큽니다. 1 색 값 1 색의 픽셀 값이 X 값이 1/3이고 y 값이 1/20 인 경우에만 색칠합니다. 하지만 내가 가지고있는 가치의 양으로 전체 이미지를 칠할 필요가있다. > 복잡한에 방법 나를 위해 - 나는 동시에 X와 Y를 확장 할 수 없습니다 :/
솔루션은 내가 생각 할 수 있습니다 스케일링을 각 값 문제로 한 번에 여러 픽셀을 표시 :
솔루션은 내가 시도 이미지를 매트릭스의 정확한 크기에 맞춘 다음 픽셀 (1 픽셀 = 1 값)을 페인팅 한 다음 그 드랍 된 이미지의 크기를 표시된 크기로 조정합니다.
여기에서 나를 도울 수 있다면 좋을 것입니다. 아마도 내가 생각할 수있는 것보다이 문제에 대한 더 나은 해결책을 가지고있을 것입니다. 참고 : 저는 C#에서 newby입니다.
나의 현재의 시도는 : 사전에
Bitmap image1;
image1 = new Bitmap(@"C:\Users\Downloads\test.bmp", true);
Bitmap newImage = new Bitmap(image1.Width, image1.Height);
using (Graphics graphics = Graphics.FromImage(newImage))
{
graphics.DrawImage(image1, 0, 0);
}
Color pixelColor = newImage.GetPixel(0, 0); //set pixel color to white
int x, y; //loop for matrix
double akt_Wert = 0;
int x1=0, y1=0; //loop for picture
for (x = 0; x < max_Col; x++) /
{
for (y = max_Rows - 1; y >= 0; y--)
{
try
{
akt_Wert = Convert.ToDouble(rows[y][x]); //tries to convert the current Value to double, if it fails its NaN -> catch
if (akt_Wert < 0.7) //if < threshold
{
for (x1 = x * 5; x1 < x*5+5; x1++)
{
Color newColor = Color.FromArgb(pixelColor.R, 50, 50);
newImage.SetPixel(x1, y1, newColor);
}
}
if (akt_Wert >= 0.7) //if >= threshold
{
for (x1 = x * 5; x1 < x*5+5; x1++)
{
Color newColor = Color.FromArgb(pixelColor.B, 10, 0);
newImage.SetPixel(x, y, newColor);
}
}
}
catch //value is NaN
{
//MessageBox.Show("Spalte = NaN");
}
}
pictureBox1.Image = newImage; // Set the PictureBox to display the image.
System.Threading.Thread.Sleep(5); //needed to avoid error
}
}
감사 (행렬의 각 값 5 개 픽셀 표시)! 감사합니다 기독교
_I는 동시에 X 및 Y 축척을 조정할 수 없습니다.> me_ ????? 응? x를 스케일 할 수 있다면 y와 동일하게 다른 것은 무엇입니까? FillRectanlge 및 좌표에 대한 SizeF를 결정하기 위해 모두 수레로 작업해야합니다. – TaW