1. Home
  2.   Heic
  3.   FileFormat.HEIC cho .NET
FileFormat.HEIC cho .NET

FileFormat.HEIC cho .NET

 
 

Đơn giản hóa quá trình đọc và chuyển đổi hình ảnh HEIC bằng API .NET

Dễ dàng chỉnh sửa hình ảnh với FileFormat.HEIC, một API .NET mã nguồn mở nhẹ, giúp đơn giản hóa việc chuyển đổi và tự động hóa các tệp HEIC.

FileFormat.HEIC for .NET cách mạng hóa trải nghiệm xử lý hình ảnh HEIC của bạn. Trong hướng dẫn toàn diện này, chúng tôi đi sâu vào các chức năng và lợi ích của việc tận dụng FileFormat.HEIC, một API .NET mã nguồn mở nhẹ, để dễ dàng xử lý các tệp HEIC một cách dễ dàng.

HEIC, viết tắt của Định dạng tệp hình ảnh hiệu quả cao với hình ảnh được mã hóa HEVC (Mã hóa video hiệu quả cao), là định dạng hình ảnh hiện đại được phát triển để thay thế JPEG làm định dạng hình ảnh mặc định trên thiết bị iOS. Mặc dù HEIC cung cấp chất lượng hình ảnh và khả năng nén vượt trội nhưng khả năng tương thích của nó trên các nền tảng vẫn là một thách thức. Nhiều ứng dụng và nền tảng thiếu hỗ trợ gốc cho HEIC, khiến việc xem hoặc chỉnh sửa các tệp này mà không cần chuyển đổi trở nên khó khăn.

FileFormat.HEIC nổi lên như một giải pháp mạnh mẽ để chuyển đổi liền mạch các tệp HEIC sang nhiều định dạng khác nhau, bao gồm JPG, PNG, PDF, v.v. API .NET mã nguồn mở nhẹ này đơn giản hóa các thao tác hình ảnh HEIC, cung cấp cho nhà phát triển và người dùng giao diện thân thiện với người dùng để xử lý các tệp HEIC một cách dễ dàng.

FileFormat.HEIC được cung cấp theo Giấy phép mở.< /p>

Các tính năng và lợi ích chính

  • Chuyển đổi dễ dàng: Chuyển đổi tệp HEIC sang các định dạng phổ biến như JPG và PNG chỉ bằng một vài dòng mã.
  • Tích hợp bộ giải mã HEVC: Sử dụng bộ giải mã HEVC tích hợp để giải mã các tệp HEIC, đảm bảo chuyển đổi chính xác và đáng tin cậy.
  • Hỗ trợ định dạng mở rộng: Chuyển đổi tệp HEIC sang nhiều định dạng khác nhau, bao gồm PDF và WEBP, cho phép sử dụng linh hoạt trên nhiều nền tảng và ứng dụng khác nhau.
  • Nguồn mở và miễn phí: Tận hưởng lợi ích của giải pháp nguồn mở mà không phải trả phí cấp phép, giúp các nhà phát triển và người dùng ở mọi cấp độ có thể truy cập được.
  • Tích hợp liền mạch với các ứng dụng C#: Tích hợp FileFormat.HEIC dễ dàng vào các ứng dụng C# của bạn, cho phép xử lý tệp HEIC liền mạch trong quy trình làm việc hiện tại của bạn.

Previous Next

Cách bắt đầu với FileFormat.HEIC cho .NET

Bắt đầu với FileFormat.HEIC thật nhanh chóng và dễ dàng. Chỉ cần làm theo các bước sau:

  • Cài đặt FileFormat.HEIC: Cài đặt gói FileFormat.HEIC qua Trình quản lý gói NuGet hoặc .NET CLI.
  • Tích hợp với dự án của bạn: Tham khảo thư viện FileFormat.HEIC trong dự án C# của bạn.
  • Bắt đầu chuyển đổi: Sử dụng API đơn giản do FileFormat.HEIC cung cấp để chuyển đổi tệp HEIC sang định dạng bạn mong muốn.

Cách cài đặt FileFormat.HEIC cho .NET được khuyến nghị là sử dụng NuGet. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.

Cài đặt FileFormat.HEIC cho .NET qua NuGet

NuGet> Install-Package FileFormat.HEIC 
Bạn cũng có thể tải xuống trực tiếp từ GitHub.

Đọc tệp HEIC thành mảng trong C#

Đoạn mã này tải tệp hình ảnh HEIC một cách hiệu quả, trích xuất dữ liệu pixel của nó theo định dạng đã chỉ định và lưu trữ nó trong một mảng cho các thao tác tiếp theo.

  • Mở tệp HEIC có tên "filename.heic" bằng FileStream.
  • Tải hình ảnh HEIC từ luồng tệp vào đối tượng HeicImage.
  • Trích xuất dữ liệu pixel từ hình ảnh HEIC ở định dạng ARGB32 và lưu trữ dữ liệu đó trong một mảng số nguyên.

Sao chép và dán đoạn mã bên dưới vào tệp chính của bạn và thực thi chương trình.

Đọc tệp .heic vào mảng int với dữ liệu Argb32

 
using (var fs = new FileStream("filename.heic", FileMode.Open))
{
    HeicImage image = HeicImage.Load(fs);
    int[] pixels = image.GetInt32Array(Heic.Decoder.PixelFormat.Argb32);
}

Đọc tệp HEIC vào WriteableBitmap trong C#

Đoạn mã sau minh họa cách mở tệp hình ảnh HEIC hiện có, trích xuất dữ liệu pixel của nó và tạo đối tượng WriteableBitmap để xử lý thêm:

  • Mở tệp HEIC có tên "filename.heic" bằng FileStream.
  • Tải hình ảnh HEIC từ luồng tệp vào đối tượng HeicImage.
  • Trích xuất dữ liệu pixel từ hình ảnh HEIC ở định dạng BGRA32 và lưu trữ dữ liệu đó trong một mảng.
  • Lấy chiều rộng và chiều cao của hình ảnh HEIC.
  • Tạo đối tượng WriteableBitmapvới định dạng chiều rộng, chiều cao và pixel được chỉ định.
  • Xác định hình chữ nhật bao phủ toàn bộ khu vực bitmap.
  • Ghi dữ liệu pixel được trích xuất vào đối tượng WriteableBitmap.

Sao chép và dán đoạn mã bên dưới vào tệp chính của bạn và thực thi chương trình.

Đọc tệp .heic vào System.Windows.Media.Imaging.WriteableBitmap

 
using (var fs = new FileStream("filename.heic", FileMode.Open))
{
    HeicImage image = HeicImage.Load(fs);
    
    var pixels = image.GetByteArray(Heic.Decoder.PixelFormat.Bgra32);
    var width = (int)image.Width;
    var height = (int)image.Height;
    
    WriteableBitmap wbitmap = new WriteableBitmap(width, height, 72, 72, PixelFormats.Bgra32, null);
    Int32Rect rect = new Int32Rect(0, 0, width, height);
    wbitmap.WritePixels(rect, pixels, 4 * width, 0);
}

Đọc tệp HEIC thành Bitmap trong C#

Đoạn mã sau minh họa cách mở tệp hình ảnh HEIC hiện có, trích xuất dữ liệu pixel của nó và tạo đối tượng Bitmap để xử lý thêm:

  • Mở tệp HEIC có tên "filename.heic" bằng FileStream.
  • Tải hình ảnh HEIC từ luồng tệp vào đối tượng HeicImage.
  • Trích xuất dữ liệu pixel từ hình ảnh HEIC ở định dạng ARGB32, lưu trữ dữ liệu đó trong một mảng int.
  • Lấy chiều rộng và chiều cao của hình ảnh HEIC.
  • Tạo đối tượng Bitmapvới chiều rộng và chiều cao được chỉ định.
  • Đặt dữ liệu pixel cho từng pixel của Bitmap.

Sao chép và dán đoạn mã bên dưới vào tệp chính của bạn và thực thi chương trình.

Đọc tệp .heic vào System.draw.Common.Bitmap

 
using (var fs = new FileStream("filename.heic", FileMode.Open))
{
    HeicImage image = HeicImage.Load(fs);
    
    var pixels = image.GetInt32Array(Heic.Decoder.PixelFormat.Argb32);
    var width = (int)image.Width;
    var height = (int)image.Height;
    var i = 0;

    Bitmap myBitmap = new Bitmap(width, height);
    for (int y = 0; y < height; y++)
        for (int x = 0; x < width; x++)
            myBitmap.SetPixel(x, y, Color.FromArgb(pixels[i++]));
}

Chuyển đổi HEIC sang JPG theo lập trình trong C#

Mã được cung cấp minh họa cách tải tệp hình ảnh HEIC theo chương trình, chuyển đổi tệp đó thành hình ảnh JPEG và lưu dưới dạng "output.jpg" bằng C#. Dưới đây là bảng phân tích các bước:

  • Mở tệp HEIC có tên "filename.heic" ở chế độ đọc bằng FileStream.
  • Tải hình ảnh HEIC từ luồng tệp vào đối tượng HeicImage.
  • Trích xuất dữ liệu pixel từ hình ảnh HEIC ở định dạng BGRA32, lưu trữ dữ liệu đó trong một mảng byte.
  • Truy xuất chiều rộng và chiều cao của hình ảnh HEIC.
  • Tạo đối tượng WriteableBitmapvới chiều rộng, chiều cao, độ phân giải (DPI), định dạng pixel và bảng màu được chỉ định.
  • Xác định hình chữ nhật bao phủ toàn bộ khu vực bitmap.
  • Ghi dữ liệu pixel được trích xuất vào đối tượng WriteableBitmap.
  • Tạo hoặc mở luồng tệp để lưu hình ảnh đã chuyển đổi dưới dạng "output.jpg".
  • Tạo đối tượng JpegBitmapEncodeđể mã hóa bitmap dưới dạng hình ảnh JPEG.
  • Thêm khung bitmap vào bộ mã hóa.
  • Lưu hình ảnh được mã hóa vào luồng tệp.

Sao chép và dán đoạn mã bên dưới vào tệp chính của bạn và thực thi chương trình.

Chuyển đổi tệp .heic thành .jpg bằng WriteableBitmap

 
using (var fs = new FileStream("filename.heic", FileMode.Open))
{
    HeicImage image = HeicImage.Load(fs);
    
    var pixels = image.GetByteArray(Heic.Decoder.PixelFormat.Bgra32);
    var width = (int)image.Width;
    var height = (int)image.Height;
    
    var wbitmap = new WriteableBitmap(width, height, 72, 72, PixelFormats.Bgra32, null);
    var rect = new Int32Rect(0, 0, width, height);
    wbitmap.WritePixels(rect, pixels, 4 * width, 0);
    
    using FileStream saveStream = new FileStream("output.jpg", FileMode.OpenOrCreate);
    JpegBitmapEncoder encoder = new JpegBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(wbitmap));
    encoder.Save(saveStream);
}

Chuyển đổi bộ sưu tập HEIC thành tập hợp tệp PNG theo chương trình trong C#

Mã được cung cấp minh họa cách tải tệp hình ảnh bộ sưu tập HEIC theo chương trình, chuyển đổi tệp đó thành một tập hợp tệp PNG và lưu tệp bằng C#. Dưới đây là bảng phân tích các bước:

  • Mở tệp HEIC có tên "filename.heic" ở chế độ đọc bằng FileStream.
  • Tải hình ảnh HEIC từ luồng tệp vào đối tượng HeicImage.
  • Đối với mỗi khung hình, hãy thực hiện như sau:
    • Trích xuất dữ liệu pixel từ hình ảnh HEIC ở định dạng BGRA32, lưu trữ dữ liệu đó trong một mảng byte.
    • Truy xuất chiều rộng và chiều cao của hình ảnh HEIC.
    • Tạo đối tượng WriteableBitmapvới chiều rộng, chiều cao, độ phân giải (DPI), định dạng pixel và bảng màu được chỉ định.
    • Xác định hình chữ nhật bao phủ toàn bộ khu vực bitmap.
    • Ghi dữ liệu pixel được trích xuất vào đối tượng WriteableBitmap.
    • Tạo hoặc mở luồng tệp để lưu hình ảnh đã chuyển đổi dưới dạng "output.png".
    • Tạo đối tượng PngBitmapEncodeđể mã hóa bitmap dưới dạng hình ảnh PNG.
    • Thêm khung bitmap vào bộ mã hóa.
    • Lưu hình ảnh được mã hóa vào luồng tệp.

Sao chép và dán đoạn mã bên dưới vào tệp chính của bạn và thực thi chương trình.

Chuyển đổi bộ sưu tập .heic thành một tập hợp tệp .png

 
using (var fs = new FileStream("filename.heic", FileMode.Open))
{
    HeicImage image = HeicImage.Load(fs);

    foreach (var key in image.Frames.Keys)
    {
        var width = (int)image.Frames[key].Width;
        var height = (int)image.Frames[key].Height;
        var pixels = image.Frames[key].GetByteArray(FileFormat.Heic.Decoder.PixelFormat.Bgra32);

        var wbitmap = new WriteableBitmap(width, height, 72, 72, PixelFormats.Bgra32, null);
        var rect = new Int32Rect(0, 0, width, height);
        wbitmap.WritePixels(rect, pixels, 4 * width, 0);

        using FileStream saveStream = new FileStream("output"+key+".png", FileMode.OpenOrCreate);
        PngBitmapEncoder encoder = new PngBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(wbitmap));
        encoder.Save(saveStream);
    }
}

FileFormat.HEIC cung cấp API trực quan, hỗ trợ định dạng toàn diện và tích hợp liền mạch với các ứng dụng C#, trao quyền cho các nhà phát triển cũng như người dùng quản lý các tệp HEIC một cách dễ dàng. Cho dù bạn đang chuyển đổi tệp HEIC để sử dụng trên web, lưu trữ ảnh iPhone sang PC hay chia sẻ chúng trên các nền tảng khác nhau, FileFormat.HEIC đều đơn giản hóa quy trình, đảm bảo hiệu quả và chất lượng tối ưu ở mọi bước.

Khám phá kho lưu trữ GitHub của chúng tôi để đóng góp, đề xuất cải tiến và nâng cao API nguồn mở này: FileFormat.HEIC -for-.NET

 Tiếng Việt