- [DEVEXPRESS] Hỗ trợ tìm kiếm highlight không dấu và không khoảng cách trên Gridview Filter
- [C#] Chia sẻ source code phần mềm Image Downloader tải hàng loạt hình ảnh từ danh sách link url
- [C#] Chụp hình và quay video từ camera trên winform
- [C#] Chia sẽ full source code tách file Pdf thành nhiều file với các tùy chọn
- Giới thiệu về Stock Tracker Widget - Công cụ theo dõi cổ phiếu và cảnh báo giá tăng giảm bằng C# và WPF
- [VB.NET] Chia sẻ công cụ nhập số tiền tự động định dạng tiền tệ Việt Nam
- [VB.NET] Hướng dẫn fill dữ liệu từ winform vào Microsoft word
- [VB.NET] Hướng dẫn chọn nhiều dòng trên Datagridview
- Hướng Dẫn Đăng Nhập Nhiều Tài Khoản Zalo Trên Máy Tính Cực Kỳ Đơn Giản
- [C#] Chia sẻ source code phần mềm đếm số trang tập tin file PDF
- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [C#] Hướng dẫn download file từ Minio Server Winform
[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!

![[C#] Hướng dẫn Flip Image Winform](https://laptrinhvb.net/uploads/users/9a8cb514e4428e85fb4ca07588e9103f.png)

![[C#] Hướng dẫn sử dụng thư viện FluentValidation để kiểm tra Form nhập liệu winform](https://laptrinhvb.net/uploads/source/csharp/fluent_validate_csharp.png)
![[C#] Hướng dẫn mã hóa hình ảnh sang Base64 và ngược lại](https://laptrinhvb.net/uploads/source/image_baiviet/9023876cc65629a36c2c52e97c8d1924.jpg)
![[C#] Hướng dẫn tạo hiệu ứng mờ ảo (blur) winform csharp](https://laptrinhvb.net/uploads/source/csharp/blur_csharp_thumb.jpg)
![[C#] Hướng dẫn load hình ảnh vào picture box chế độ Unlock](https://laptrinhvb.net/uploads/source/image_baiviet/3ddeac9c43a69536767cc2870f28b4f1.png)
![[C#] Mã hóa sử dụng thuật toán triple DES (3DES)](https://laptrinhvb.net/uploads/source/image_baiviet/f0a65cad9fdaf6dfd82399eb11ec96ef.jpg)
![[C#] Hướng dẫn cách tạo mã QR Code trên file Excel](https://laptrinhvb.net/uploads/source/new_image_baiviet/qrcode_to_excel.png)
![[C#] Hướng dẫn chuyển đổi văn bản sang Morse code](https://laptrinhvb.net/uploads/source/csharp/morse_code_thumb.png)
![[C#] Thiết kế đồng hồ kỹ thuật số có hiệu ứng scrolling winform](https://laptrinhvb.net/uploads/source/vbnet/digital_clock_thumb.png)
![[C#] Hướng dẫn hiển thị thông báo Toast giống trên điện thoại Android](https://laptrinhvb.net/uploads/source/vbnet/toast_message_csharp.png)
![[C#] Hướng dẫn fixed lỗi xóa hình ảnh trong csharp](https://laptrinhvb.net/uploads/source/image_baiviet/6d82d92f7643b32d76ae2c4cfd9ab231.png)
![[C#] Hướng dẫn thay đổi độ sáng tối màn hình Laptop trên winform](https://laptrinhvb.net/uploads/source/csharp/screen_brightness_csharp_thumb.jpg)
![[C# - DEVEXPRESS] - Cháy túi cùng EURO 2020 - 2021](https://laptrinhvb.net/uploads/source/vbnet/game_euro.jpg)
![[C#] Sử dụng FolderBrowserDialog Vista trên Winform](https://laptrinhvb.net/uploads/source/new_image_baiviet/folder_brower_vista.png)
![[C#] Hướng dẫn thực thi tập tin python trong winform](https://laptrinhvb.net/uploads/source/vbnet/maxresdefault.jpg)

![[C#] Hướng dẫn định dạng tiền tệ trong lập trình Csharp](https://laptrinhvb.net/uploads/source/csharp/format_string_currency.jpg)

![[C#] Hướng dẫn tích hợp ứng dụng Notepad vào Winform](https://laptrinhvb.net/uploads/source/image_baiviet/364e3d7fe76255197cae5b07b9e1fff3.png)
![[C#] Hướng dẫn thay đổi giao diện ứng dụng Winform theo giao diện của Windows](https://laptrinhvb.net/uploads/source/new_image_baiviet/CHANGE_THEME_THUMB.png)

![[C#] Hướng dẫn khóa màn hình desktop screen lock winform](https://laptrinhvb.net/uploads/source/csharp/lock_screen_csharp.png)
![[C#] Hướng dẫn thêm, xóa, sửa database ORACLE trong lập trình csharp](https://laptrinhvb.net/uploads/source/image_baiviet/79715e90242046fc881fd2058e579356.jpg)
![[C#] Hướng dẫn sử dụng Sort và Filter Advance Data Gridview Winform](https://laptrinhvb.net/uploads/source/devexpress/ad_datagridview_csharp.png)
![[C#] Hướng dẫn viết ứng dụng Scan QR code, barcode trực tiếp qua Webcam](https://laptrinhvb.net/uploads/source/csharp/scan_qrcode_realtime_thumb.png)
![[C#] Chia sẽ Tool Convert Json String to class csharp, vb, typescript](https://laptrinhvb.net/uploads/source/vbnet/json_tool_thumb.png)
