C#으로 이미지를 자르고 싶습니다. 대부분의 사진 편집 소프트웨어에서와 마찬가지로 마우스로 크기를 조정하고 위치를 변경할 수있는 사각형 상자를 사용하고 싶습니다. 또한 자른 부분을 강조 표시하는 방법을 알고 싶습니다 (this photo 참조).직사각형을 사용하여 그림 자르기
1
A
답변
0
선택 상자의 바깥쪽에 검은 색 이미지가 약 30 %의 알파로 놓여있는 것처럼 보입니다. 이렇게하려면 각 픽셀을 내용 영역 외부로 가져 와서 위에 30 %의 알파가있는 검은 픽셀을 그립니다. 이것은 원하는 희미한 효과를 줄 것입니다.
C#에서 사각형을 동적으로 점유 할 수있는 방법은.
+0
도움을 주신 Nick Beradi에게 감사드립니다. 문제는 내가 한 픽셀 씩 작업 할 때 시간이 매우 걸린다는 것입니다. 컬러 매트릭스와 같은 빠른 방법이 있습니까? – qulzam
0
0
이미지 링크는 더 이상 제공되지 않습니다.
그래서 패널에서 자르기 할 이미지가있는 그림 상자가 있다고 가정합니다.
먼저 당신이 마우스 동작하면 자르기하고자하는 사각형 영역 그릴 수 있도록하기위한 이벤트 핸들러를 작성해야합니다 : 이제
private void picBox_MouseDown(object sender, MouseEventArgs e)
{
Cursor = Cursors.Default;
if (Makeselection)
{
try
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Cursor = Cursors.Cross;
cropX = e.X;
cropY = e.Y;
cropPen = new Pen(Color.Crimson, 1);
cropPen.DashStyle = DashStyle.Solid;
}
picBox.Refresh();
}
catch (Exception ex)
{
}
}
}
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
if (Makeselection)
{
Cursor = Cursors.Default;
}
}
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
Cursor = Cursors.Default;
if (Makeselection)
{
picBox.Cursor = Cursors.Cross;
try
{
if (picBox.Image == null)
return;
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
picBox.Refresh();
cropWidth = e.X - cropX;
cropHeight = e.Y - cropY;
picBox.CreateGraphics().DrawRectangle(cropPen, cropX, cropY, cropWidth, cropHeight);
}
}
catch (Exception ex)
{
}
}
}
private void picBox_MouseLeave(object sender, EventArgs e)
{
tabControl.Focus();
}
private void picBox_MouseEnter(object sender, EventArgs e)
{
picBox.Focus();
}
을, 이미지 자르기 버튼 클릭 기능을 제공 :
private void btnCrop_Click_1(object sender, EventArgs e)
{
Cursor = Cursors.Default;
try
{
if (cropWidth < 1)
{
return;
}
Rectangle rect = new Rectangle(cropX, cropY, cropWidth, cropHeight);
//First we define a rectangle with the help of already calculated points
Bitmap OriginalImage = new Bitmap(picBoxScreenshot.Image, picBoxScreenshot.Width, picBoxScreenshot.Height);
//Original image
Bitmap _img = new Bitmap(cropWidth, cropHeight);
// for cropinfo image
Graphics g = Graphics.FromImage(_img);
// create graphics
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//set image attributes
g.DrawImage(OriginalImage, 0, 0, rect, GraphicsUnit.Pixel);
picBox.Image = _img;
picBox.Width = _img.Width;
picBox.Height = _img.Height;
PictureBoxLocation();
cropWidth = 0;
}
catch (Exception ex){}
}
private void PictureBoxLocation()
{
int _x = 0;
int _y = 0;
if (panel1.Width > picBox.Width)
{
_x = (panel1.Width - picBox.Width)/2;
}
if (panel1.Height > picBox.Height)
{
_y = (panel1.Height - picBox.Height)/2;
}
picBox.Location = new Point(_x, _y);
picBox.Refresh();
}
관련 문제
- 1. C# 그림 상자에 직사각형을 그립니다.
- 2. Java + JSF 2.0에서 jCrop으로 그림 자르기
- 3. PDF 자르기/Ghostscript를 사용하여 자르기 상자 추가하기
- 4. 점과 직사각형을 재사용하거나 새로 작성해야합니까?
- 5. 런타임에서 안드로이드에서 이미지 자르기
- 6. 직사각형을 길게 누르십시오.
- 7. 자바를 사용하여 이미지에서 흰색 직사각형을 제거하는 방법
- 8. 티파니에서 직사각형을 자르는 방법?
- 9. C#에서 이미지 자르기
- 10. VBA를 사용하여 Powerpoint에서 이미지 자르기
- 11. 자르기 이미지 ala Google 고글
- 12. 직사각형을 그리려면 뷰를 만들어야합니까?
- 13. 교차 된 직사각형을 얻으십시오!
- 14. 그림 자동 삽입 그림 상자
- 15. 타이머를 사용하여 그림 상자 이동하기
- 16. OpenGL을 사용하여 iPad에서 그림 그리기
- 17. ImageMagick을 사용하여 그림 방향 감지
- 18. C에서 PGM 자르기
- 19. flex에서 직사각형을 그리는 방법 4.5.1?
- 20. Open GL : 테두리가있는 직사각형을 그립니까?
- 21. iOS 곡선 끝이있는 직사각형을 그립니다.
- 22. ffmpeg를 사용하여 x에서 x + n까지 mp3 자르기?
- 23. iText를 사용하여 주석을 잃지 않고 자르기 PDF
- 24. MySQL을 사용하여 데이터를 가져온 후 PHP 자르기
- 25. iPhone + 그림 공유 + 그림 호스트
- 26. 그림 상자에서 그림 확대하는 방법
- 27. 경로가있는 이미지의 다른 부분을 자르기
- 28. 이미지 업로드 및 자르기
- 29. PHP GD - 자르기 모양
- 30. 종이 클립으로 간단한 자르기
여기에서 무엇을 찾고 계십니까? 큰 이미지에서 파트를 자르는 실제 방법은 무엇입니까? 또는 연결된 그림과 같이 자르기 선택을 보여주는 방법은 무엇입니까? – peSHIr
나는 작물에 대해 이미 알고있다. 나는 그림 에서처럼 자르기 선택을 보여주는 방법을 돕고 싶다. 그리고 자르기 선택을 이동합니다. – qulzam