1 điểm bởi GN⁺ 2025-03-17 | 1 bình luận | Chia sẻ qua WhatsApp

Khi tôi tái tạo lại Photoshop bằng C++

  • Bối cảnh dự án

    • Vào mùa hè năm 2006, sau khi hoàn thành khóa học C++/Windows API, tác giả bắt đầu phát triển một ứng dụng đọc truyện tranh có thể điều khiển chỉ bằng chuột. Ứng dụng này có tên là Fiew.
    • Đến mùa thu, tác giả phải quyết định chủ đề luận văn tốt nghiệp, và dựa trên việc phát triển thành công Fiew, đã quyết định tạo ra một trình biên tập ảnh. Mục tiêu là hiện thực các tính năng tương tự Adobe Photoshop.
  • Phát triển Fedit

    • Fedit được phát triển bằng C++, Windows API và thư viện đồ họa GDI+.
    • Ứng dụng được tạo thành một tệp thực thi đơn, không cần cài đặt, tiêu thụ ít tài nguyên hệ thống và có thể chạy trực tiếp từ ổ USB.
    • Nó hiện thực giao diện tương tự Photoshop, bao gồm các cửa sổ công cụ có thể di chuyển tự do, bộ chọn màu, quản lý layer và các bộ lọc hình ảnh.
    • Tính năng trình xem thư viện ảnh quy mô lớn được mang sang từ Fiew cũng đã được bổ sung.
  • Thách thức và thành quả trong quá trình phát triển

    • Trong quá trình phát triển, tác giả gặp nhiều vấn đề nhưng đã tự phân tích, debug và giải quyết.
    • Việc hiện thực giao diện người dùng là phần khó nhất, và tác giả đã nỗ lực để tái hiện quy trình làm việc tương tự Photoshop.
    • Cuối cùng, luận văn tốt nghiệp đã được nộp thành công, và Fedit nhận được đánh giá tích cực trên mạng.
  • Kết quả và sự nghiệp về sau

    • Nhờ thành công của Fedit và Fiew, tác giả đã làm việc tại GoldenLine với vai trò lập trình viên C++, đảm nhiệm phát triển một ứng dụng WinAPI xử lý tải lên hình ảnh quy mô lớn.
    • Mã nguồn của Fedit và Fiew có thể xem trên GitHub, và tài liệu luận văn được cung cấp dưới dạng PDF.
  • Bối cảnh của nhà phát triển

    • Tác giả nhận bằng thạc sĩ khoa học máy tính từ Viện Khoa học Máy tính của Đại học Oxford vào năm 2008, và đã tham gia nhiều dự án khác nhau.

1 bình luận

 
GN⁺ 2025-03-17
Ý kiến Hacker News
  • Đọc câu "tuân theo năm quy tắc của một tệp thực thi duy nhất, không cần trình cài đặt, kho lưu trữ, khóa registry hay runtime bổ sung" khiến tôi thấy ấm áp và hạnh phúc
    • Tôi hiểu vì sao registry tồn tại và cách hệ sinh thái phần mềm Windows hiện nay vận hành, nhưng vẫn nhớ thời kỳ phần mềm desktop xưa từng như thế này
    • Dạo này tôi cố dùng bản cài đặt portable khi có thể, nhưng mong điều đó phổ biến hơn nữa
    • Tôi thường tránh cài lại Windows vì thời gian, sự phiền toái và sự không chắc chắn về việc liệu có thể khôi phục hoàn toàn mọi thiết lập hay không
  • Photoshop có vô số tính năng, nhưng một vài bộ lọc hình ảnh thì không thể bị xem là tái sáng tạo
  • Xin gửi luôn liên kết trực tiếp đến chương trình tuyệt vời này: fedit-image-editor
  • "Nhưng tôi đã không quảng bá nó. Vài tháng sau tôi có được một công việc C++. Cuối cùng mọi nỗ lực đều đơm hoa kết trái"
    • Theo bản năng, chúng ta biết nỗ lực của mình nên được đền đáp, nhưng thật đáng tiếc khi các nhà phát triển mã nguồn mở thường bỏ rất nhiều công sức vào code mà lại không được tưởng thưởng
    • Điều đó giải thích vì sao họ tìm kiếm sự ghi nhận danh tiếng, vì sao NPM thêm tính năng "có thể bạn nên quyên góp cho tác giả của thư viện này", và vì sao GitHub xây dựng Patreon
    • Chúng ta cần một mô hình tốt hơn, không lợi dụng những người trẻ ngây thơ nhưng chăm chỉ
  • Hồi đầu những năm 2000 từng có một dự án tên là "pixel32", sau này được gọi là "Pixel Studio Pro"
    • Nó được bán theo dạng truy cập sớm, nhưng rồi trở thành vaporware; những người đã trả tiền thì vô cùng tức giận, và người tạo ra nó nhanh chóng từ anh hùng thành phản diện
    • Liên kết liên quan đến Pixel Studio Pro
  • Đôi khi mọi người không cho thế giới biết về những gì họ đã tạo ra
    • Thật vui vì nó có trên GitHub, và nó rất ấn tượng
  • Câu hỏi là nó có bị crash mỗi 30 phút không
    • Nếu không thì tôi thắc mắc nó được bán với giá bao nhiêu
  • Khuyên nên xem Photopea
    • Tôi dùng nó hằng ngày, và người tạo ra nó thật tuyệt vời
  • Tác giả bài viết nói rằng mình tốt nghiệp Đại học Công nghệ Warsaw
    • Nơi này từ lâu luôn được xem là một trong những trường đại học tốt hơn ở đây
    • Gần đây tôi viết luận văn ở một trường đại học công nghệ tại một thành phố lớn khác, và 90% các luận văn kỹ thuật có chất lượng rất kém
  • Chạy tốt trên Wine