- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
- [VB.NET] Gởi tin nhắn và file đính kèm qua ứng dụng gởi tin nhắn Whats App
- [C#] Viết ứng dụng Auto Fill list Textbox from clipboard Winform
- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
[C#] Hướng dẫn Flip Image Winform
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách Flip Image trong C#, Winform.
[C#] Flip Image Winform
Giao diện demo ứng dụng Flip Image C#:
Trong ứng dụng trên, chúng ta sẽ có thể lật ảnh theo chiều ngang hoặc chiều dọc.
Source code c#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
namespace FlipImage
{
public partial class Form1 : Form
{
private Image loadedImage;
public Form1()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
Image openedImage = Image.FromFile(openFileDialog1.FileName);
if (loadedImage != null)
loadedImage.Dispose();
loadedImage = openedImage;
picImage.Image = loadedImage;
}
catch (Exception)
{
MessageBox.Show("Invalid Image");
}
}
}
private void btnFlipHorizontally_Click(object sender, EventArgs e)
{
if (loadedImage != null)
{
Image flippedImage = FlipImage(loadedImage, true, false);
loadedImage.Dispose();
loadedImage = flippedImage;
picImage.Image = loadedImage;
}
}
private void btnFlipVertically_Click(object sender, EventArgs e)
{
if (loadedImage != null)
{
Image flippedImage = FlipImage(loadedImage, false, true);
loadedImage.Dispose();
loadedImage = flippedImage;
picImage.Image = loadedImage;
}
}
private void btnFlipBoth_Click(object sender, EventArgs e)
{
if (loadedImage != null)
{
Image flippedImage = FlipImage(loadedImage, true, true);
loadedImage.Dispose();
loadedImage = flippedImage;
picImage.Image = loadedImage;
}
}
public static Image FlipImage(Image image, bool flipHorizontally, bool flipVertically)
{
Bitmap flippedImage = new Bitmap(image.Width, image.Height);
using (Graphics g = Graphics.FromImage(flippedImage))
{
//Matrix transformation
Matrix m = null;
if (flipVertically && flipHorizontally)
{
m = new Matrix(-1, 0, 0, -1, 0, 0);
m.Translate(flippedImage.Width, flippedImage.Height, MatrixOrder.Append);
}
else if (flipVertically)
{
m = new Matrix(1, 0, 0, -1, 0, 0);
m.Translate(0, flippedImage.Height, MatrixOrder.Append);
}
else if (flipHorizontally)
{
m = new Matrix(-1, 0, 0, 1, 0, 0);
m.Translate(flippedImage.Width, 0, MatrixOrder.Append);
}
//Draw
g.Transform = m;
g.DrawImage(image, 0, 0);
//clean up
m.Dispose();
}
return (Image)flippedImage;
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("https://laptrinhvb.net/");
}
}
}
Thanks for watching!