Ich möchte ein Bild in C# zuschneiden. Wie in den meisten Fotobearbeitungssoftware möchte ich die Rechteck-Box verwenden, die in der Größe verändert und per Maus neu positioniert werden kann. Außerdem würde ich gerne wissen, wie man die beschnittene Fläche hervorhebt, wie in this photo gezeigt.Ein Bild mit einem Rechteck zuschneiden
Antwort
Die Außenseite der Auswahlbox scheint ein schwarzes Bild mit einem Alpha von etwa 30% darüber zu haben. Um dies zu tun, nehmen Sie einfach jedes Pixel außerhalb des Inhaltsbereichs und zeichnen ein schwarzes Pixel mit einem 30% Alpha darauf. Dies würde den gewünschten abgeblendeten Effekt ergeben.
Wie können Sie ein Rechteck in C# dynamisch besetzbar sein.
Danke Nick Beradi für Hilfe. Das Problem ist, dass, wenn ich an einem Pixel eins nach dem anderen arbeite, es sehr viel Zeit braucht. Gibt es einen schnellen Weg wie die Farbmatrix? – qulzam
Um ein Bild heller oder dunkler zu zeichnen (oder die Farben in irgendeiner Weise zu ändern), verwenden Sie einen ColorMatrix, wie this.
ich kenne die Verwendung von Farbmatrix, aber ich weiß nur die Farbmatrix auf das ganze Bild verwenden. Wie können wir es auf Seiten des Bildes verwenden? – qulzam
Zeichnen Sie es als fünf separate Rechtecke (fünf Aufrufe an .DrawImage). Sie können das Bild in vier Rechtecke aufteilen, die alles überdecken, was außerhalb Ihrer Auswahl liegt, und ein Rechteck, das die Auswahl an sich ist. –
Ihr Bildlink ist nicht mehr verfügbar.
Also vorausgesetzt, dass Sie in einem Panel haben Sie Ihre Bildbox mit dem Bild zu beschneiden.
Zuerst Event-Handler erstellen müssen für Mausaktionen der Lage sein, einen rechteckigen Bereich zu ziehen, die Sie zuschneiden möchten:
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();
}
Jetzt kommt die Klick-Funktionstaste, um das Bild beschneiden:
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. Bild von Benutzereingabe zuschneiden
- 2. Bild zuschneiden mit CGImageRef
- 3. Bild zuschneiden mit CGImageCreateWithImageInRect
- 4. Bild zuschneiden mit Koordinaten
- 5. Wie bekomme ich ein Bild von einem Rechteck?
- 6. Python Tkinter Leinwand Rechteck mit einem Bild
- 7. Wie schneidet man ein Bild mit einem gedrehten Rechteck ab?
- 8. Bild zuschneiden ohne zu kopieren
- 9. Bild in CSS zuschneiden
- 10. ein Bild zuschneiden und es in einem Bildfeld
- 11. Bild in PHP zuschneiden
- 12. Force UIImagePickerController ein quadratisches Bild zuschneiden
- 13. PHP: schwarzes Bild beim Zuschneiden mit PHP
- 14. PHP - Zuschneiden Bild
- 15. Wie zeichne ein Rechteck in einem Rechteck mit Svg?
- 16. Rechteck in einem Bild zeichnen - Matlab
- 17. Zuschneiden UIImagePickerControllerOriginalImage mit UIImagePickerControllerCropRect gibt ein falsches Bild zurück
- 18. Wie ändert man das Bild von einem unregelmäßigen Rechteck in ein Rechteck?
- 19. Wie ersetzt man eine Kontur (Rechteck) in einem Bild mit einem neuen Bild mit Python?
- 20. Android: ein Bild zuschneiden, nachdem es mit Kamera mit einem festen Seitenverhältnis
- 21. Bild zuschneiden nach Auswahl des Bereichs mit Kantenerkennung in Android
- 22. Zeichnen Rechteck über Bild
- 23. iPhone - Wie wird ein vergrößerbares Rechteck zum Zuschneiden von Bildern erstellt?
- 24. Ein Bild auf die Form eines Overlays zuschneiden - iOS
- 25. Machen Sie ein Bild in ein Rechteck passen
- 26. Python: Kanten von Kanten erkennen und in ein Quadrat zuschneiden?
- 27. Wie Sie ein Zoomin Bild in Android zuschneiden
- 28. ein aufgenommenes Bild zuschneiden genau, wie es aussieht in AVCaptureVideoPreviewLayer
- 29. Bild zuschneiden wie aktualisierte Version von Instagram
- 30. Slider mit einem Bild ein Bild
Wonach suchen Sie hier? Die tatsächliche Art, ein Teil von einem größeren Bild zu beschneiden? Oder eine Möglichkeit, Ihre Zuschneideauswahl wie in dem von Ihnen verlinkten Bild anzuzeigen? – peSHIr
Ich habe schon eine Idee über das Beschneiden. Ich möchte Ihnen helfen, die Bildausschnittauswahl wie im Bild zu zeigen. und ich bewege auch die Ausschnittauswahl. – qulzam