Cách tốt nhất để thay đổi kích thước hình ảnh bằng .NET là gì, mà không làm mất dữ liệu EXIF? Tôi đồng ý với việc sử dụng các lớp .NET 2 System.Drawing. *, Các lớp WPF hoặc các thư viện mã nguồn mở. Cách đơn giản nhất mà tôi thấy để xử lý tất cả bây giờ là sử dụng Graphics.FromImage (.NET 2) để thực hiện thay đổi kích thước và ghi lại dữ liệu EXIF với thư viện OpenSource theo cách thủ công (mỗi phần dữ liệu). từng cái một).Thay đổi kích cỡ hình ảnh bằng .NET mà không làm mất dữ liệu EXIF
Trả lời
Đề xuất trích xuất dữ liệu EXIF trước khi thay đổi kích thước và sau đó chèn lại dữ liệu EXIF có vẻ như một giải pháp tốt.
Dữ liệu EXIF chỉ có thể được xác định cho các định dạng như JPEG và TIFF - khi bạn tải hình ảnh đó vào đối tượng Đồ họa để thay đổi kích thước, về cơ bản, bạn chuyển hình ảnh thành bitmap thông thường. Do đó, bạn bị mất dữ liệu EXIF.
Chuỗi có liên quan một chút về khai thác EXIF bằng C# here.
Được rồi tôi giữ giải pháp của tôi sau đó, nó làm việc khá tốt, nó chỉ là rất nhiều mã cho không có gì nhưng nó đủ nhanh :) – TigrouMeow
Chỉ có một lựa chọn khác mà tôi biết là ImageMagick - Tôi hiểu bạn có thể thực hiện các phép biến đổi mà không làm mất dữ liệu EXIF. làm điều tương tự bạn đã làm, chỉ có khả năng nhanh hơn. –
tôi đã sử dụng Magick .NET và tạo ra 2 phương pháp khuyến nông:
public static byte[] ToByteArray(this Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
public static Image AttachMetadData(this Image imgModified, Image imgOriginal)
{
using (MagickImage imgMeta = new MagickImage(imgOriginal.ToByteArray()))
using (MagickImage imgModi = new MagickImage(imgModified.ToByteArray()))
{
foreach (var profileName in imgMeta.ProfileNames)
{
imgModi.AddProfile(imgMeta.GetProfile(profileName));
}
imgModified = imgModi.ToImage();
}
return imgModified;
}
- 1. Cách thay đổi kích cỡ hình ảnh mà không làm mất chất lượng
- 2. Thao tác hình ảnh mà không xóa dữ liệu EXIF
- 3. Sao chép một hình ảnh, mất dữ liệu Exif
- 4. Bảo toàn dữ liệu exif của hình ảnh bằng PIL khi thay đổi kích thước (tạo hình thu nhỏ)
- 5. Thay đổi kích thước hình ảnh trong asp.net mà không làm mất chất lượng hình ảnh
- 6. UIImage Thay đổi kích cỡ mà không làm mất chất lượng
- 7. Thay đổi loại cột mà không làm mất dữ liệu
- 8. Thay đổi kích cỡ hình ảnh động giữa NSView
- 9. Thay đổi kích cỡ mảng bằng C
- 10. Thay đổi kích cỡ khung hình bằng vải js
- 11. Ghi siêu dữ liệu EXIF vào hình ảnh trong Android
- 12. hình ảnh thay đổi kích thước trong Net với Antialiasing
- 13. Tải lên thay đổi kích cỡ ảnh để S3
- 14. ImageIO - nhận loại hình ảnh và Exif dữ liệu
- 15. Làm thế nào để thay đổi kích cỡ hình ảnh trong Android?
- 16. Làm cách nào để xóa dữ liệu EXIF (camera) khỏi ảnh bằng sóng mang?
- 17. Thay đổi kích cỡ UIImage bằng các cạnh cứng
- 18. Làm thế nào để viết hoặc sửa đổi dữ liệu EXIF cho một hình ảnh hiện có trên hệ thống tập tin, mà không cần tải hình ảnh?
- 19. Thay đổi kích cỡ vector của STL
- 20. Thay đổi kích cỡ UIImage và thay đổi kích thước của UIImageView
- 21. itextsharp và kích cỡ hình ảnh
- 22. Làm cách nào để giảm kích cỡ của ảnh trong C# và .NET 3.5?
- 23. Làm cách nào để thay đổi kích thước hình ảnh bằng JavaScript/jQuery mà không cần pixel như trình duyệt?
- 24. Thay đổi kích thước hình ảnh bằng django?
- 25. Sao chép hình ảnh và lưu giữ dữ liệu EXIF / IPTC của nó bằng PHP imageCreateFromJpeg?
- 26. thay đổi kích thước hình ảnh ckfinder
- 27. thay đổi kích cỡ hình ảnh svg được chèn với nội dung: url()
- 28. ImageMagick - Thay đổi kích thước hình ảnh thành hình vuông
- 29. Làm thế nào để thay đổi kích cỡ nguồn với hình thu nhỏ sorl?
- 30. Thay đổi kích cỡ (thu nhỏ) YUV420sp image
Tôi đã thêm một dự án trên CodePlex, tính năng thay đổi kích thước mà không làm mất dữ liệu EXIF: http://tidytinypics.codeplex.com/ – TigrouMeow