FreeSoft - Phần mềm đồng bộ bề ngang file ảnh | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

FreeSoft Phần mềm đồng bộ bề ngang file ảnh

Giới thiệu:
Đây là một phần mềm nhỏ gọn, mình viết để phục vụ cho việc làm ebook PDF truyện tranh, chia sẻ lên đây để ai cần thì có mà xài.
DongBoBeNgang1.0.0.2.png
Phần mềm chỉ có một tính năng duy nhất, đó là điều chỉnh kích thước của tất cả file ảnh trong thư mục cho trước (thư mục nguồn), thư mục con và thư mục cháu (con của thư mục con) của thư mục nguồn sao cho bề ngang của tất cả file ảnh này đều bằng nhau, nhưng tỉ lệ giữa bề ngang với bề cao của từng file vẫn không thay đổi (ảnh không bị méo đi).
Phần mềm hỗ trợ các loại file JPEG, BMP, PNG, GIF và TIFF.
Đây là phần mềm miễn phí mã nguồn mở, bạn có thể tải mã nguồn về và phát triển theo ý mình, không cần hỏi ý kiến của mình làm gì, cũng không cần lo lắng vấn đề bản quyền gì.
Yêu cầu về hệ thống:
Phần mềm chỉ yêu cầu .NET Framework 4.0 trở lên, ngoài ra không có yêu cầu gì khác.
Tải về:
Phần mềm:
Phiên bản 1.0
Phiên bản 1.0.0.1
Phiên bản 1.0.0.2
Mã nguồn:
Phiên bản 1.0
Phiên bản 1.0.0.1
Phiên bản 1.0.0.2
Phần mềm do chính mình viết nên mình nghĩ không cần dùng mã HEX hay thẻ ẩn làm gì ha?
 
Sửa lần cuối:

baogia2010

Rìu Chiến Bạc
Đã sửa được lỗi này. Bạn tải phiên bản 1.0.0.1 về xài là được nha!
Thành thật xin lỗi bạn vì đây đúng là sai sót của mình.
Cảm ơn bạn đã fix, đã test lại
db-1.png


Tất cả các ảnh trên đều có chiều rộng > 800 trước khi đồng bộ. Sau khi đồng bộ về 800 thì có nhược là size lại tăng
db-2.png
 

malemkhoang

Rìu Bạc Đôi
Góp ý cho bản 1.0.0.1:
1. Tùy chọn "Sau khi xong" nên đảo vị trí "Thoát chương trình" lên trên và đặt làm mặc định; đồng thời bỏ đoạn lệnh kiểm tra (tệp frmMain.vb, từ dòng 421 đến dòng 427).
2. Chương trình bị đổ vỡ (break) khi gặp phải thằng xấu chơi là tôi đem ảnh webp đổi tên thành jpg. Do đó, khi load ảnh (frmMain.vb, dòng 169, dòng 196, dòng 226) bạn phải kiểm tra xem kết quả thực thi lệnh này có hoàn thành hay không mà xử lý.
3. Việc xử lý cho 3 cấp thư mục có vẻ hợp lý. Tuy nhiên, nên mở rộng giới hạn này. Trong AutoIT, người ta có hàm UDF tên là _FileListToArray và _FileListToArrayRec trả về mảng chứa tên tệp (hoặc thư mục) theo chỉ định phần mở rộng và có đường dẫn tuyệt đối. Tôi cho rằng với VB chắc cũng có hàm tương tự.
4. TIFF và GIF có thể là các ảnh đa trang, do đó bạn cần cân nhắc khi xử lý chúng.
5. Khi chương trình đã thực hiện xong và với tùy chọn "Hiện thông báo" thì nên xóa dữ liệu trên Form.

@lamsonquaikhach

Để ảnh hiện được trên diễn đàn thì bạn cần để địa chỉ ảnh theo mẫu như sau:
[ CENTER ][ IMG ]<địa chỉ ảnh>[ /IMG ][ /CENTER ]
Lưu ý: bỏ khoảng trống trong cú pháp trên.
 
Góp ý cho bản 1.0.0.1:
1. Tùy chọn "Sau khi xong" nên đảo vị trí "Thoát chương trình" lên trên và đặt làm mặc định; đồng thời bỏ đoạn lệnh kiểm tra (tệp frmMain.vb, từ dòng 421 đến dòng 427).
2. Chương trình bị đổ vỡ (break) khi gặp phải thằng xấu chơi là tôi đem ảnh webp đổi tên thành jpg. Do đó, khi load ảnh (frmMain.vb, dòng 169, dòng 196, dòng 226) bạn phải kiểm tra xem kết quả thực thi lệnh này có hoàn thành hay không mà xử lý.
3. Việc xử lý cho 3 cấp thư mục có vẻ hợp lý. Tuy nhiên, nên mở rộng giới hạn này. Trong AutoIT, người ta có hàm UDF tên là _FileListToArray và _FileListToArrayRec trả về mảng chứa tên tệp (hoặc thư mục) theo chỉ định phần mở rộng và có đường dẫn tuyệt đối. Tôi cho rằng với VB chắc cũng có hàm tương tự.
4. TIFF và GIF có thể là các ảnh đa trang, do đó bạn cần cân nhắc khi xử lý chúng.
5. Khi chương trình đã thực hiện xong và với tùy chọn "Hiện thông báo" thì nên xóa dữ liệu trên Form.

@lamsonquaikhach

Để ảnh hiện được trên diễn đàn thì bạn cần để địa chỉ ảnh theo mẫu như sau:
[ CENTER ][ IMG ]<địa chỉ ảnh>[ /IMG ][ /CENTER ]
Lưu ý: bỏ khoảng trống trong cú pháp trên.
Cảm ơn góp ý của bạn!
1. Nếu bạn không muốn kiểm tra thì mình bỏ cũng được, không nhất thiết.
2. Đúng là mình không tính tới mấy kẻ chơi xấu. Phần mềm mình viết toàn hướng tới người dùng có nhu cầu thực sự.
3. Không hiểu ý của bạn là gì? Có phải bạn muốn tầm soát hết ảnh trong tất cả các cấp thư mục con, thay vì 3 cấp như chương trình đã làm?
4. Thực tế mình chưa test với TIFF và GIF (do thiếu nguồn file), mới đầu mình chỉ định hỗ trợ JPEG và PNG vì truyện tranh gần như toàn 2 định dạng này.
5. Ghi nhận góp ý của bạn.
Đã có phiên bản 1.0.0.2, thay đổi theo các góp ý của bạn. Bạn có thể tải về dùng thử.

===========================

Nhớ lúc trước mình đăng ảnh đâu cần cú pháp BBcode này hè?
 
Sửa lần cuối:

louislumos

Rìu Sắt Đôi
1. Hiện tại mình đang dùng XnView Shell Extension. Cái này là một tiện ích tích hợp vào menu chuột phải File Explorer của Windows, giúp thay đổi kích thước cũng như đồng bộ kích thước hình ảnh, chuyển đổi định dạng hình ảnh HÀNG LOẠT vô cùng mạnh mẽ và nhanh chóng.

2. Mình thấy cái tool này của bạn là "đồng bộ bề ngang" thì cái chức năng này cũng giống một phần nhỏ của cái extension trên. Tuy nhiên về tốc độ thì mình thấy cái tool của bạn nó nhanh hơn, mượt hơn. Chính vì thế mình khá ủng hộ dự án của bạn. Mình mong sao bạn có tâm huyết, phát triển nó mạnh mẽ hơn nữa, nhiều chức năng hơn nữa, giống như cái extension của XnView đó vậy, chứ không đơn thuần chỉ là đồng bộ bề ngang thôi.
 
1. Hiện tại mình đang dùng XnView Shell Extension. Cái này là một tiện ích tích hợp vào menu chuột phải File Explorer của Windows, giúp thay đổi kích thước cũng như đồng bộ kích thước hình ảnh, chuyển đổi định dạng hình ảnh HÀNG LOẠT vô cùng mạnh mẽ và nhanh chóng.

2. Mình thấy cái tool này của bạn là "đồng bộ bề ngang" thì cái chức năng này cũng giống một phần nhỏ của cái extension trên. Tuy nhiên về tốc độ thì mình thấy cái tool của bạn nó nhanh hơn, mượt hơn. Chính vì thế mình khá ủng hộ dự án của bạn. Mình mong sao bạn có tâm huyết, phát triển nó mạnh mẽ hơn nữa, nhiều chức năng hơn nữa, giống như cái extension của XnView đó vậy, chứ không đơn thuần chỉ là đồng bộ bề ngang thôi.
À, mình viết phần mềm này vì mình cần đồng bộ bề ngang để tạo file PDF có các trang bằng nhau về bề ngang, đỡ phải zoom lên zoom xuống khi xem.
Còn resize file ảnh thì có rất nhiều tool, không cần viết thêm làm gì.
Thật ra mục đích mình chia sẻ lên đây là để ai cũng làm PDF như mình thì có thêm công cụ, tự động hóa công việc thôi.
 

malemkhoang

Rìu Bạc Đôi
Góp ý cho bản 1.0.0.2
Từ #11:
Số 1 và 5: là về mặt logic của chương trình, sửa hay không tùy bạn.
Số 2: không phải là thực sự mà là thực tế. Ảnh tải về từ Internet, có lúc nhận được là .gif, .jpg, .png nhưng không phải thế, nó là .webp
Số 3: Muốn nói về kỹ thuật lập trình. Trong chương trình của bạn, để xử lý cho 3 cấp thư mục bạn phải viết lặp lại 6 lần một đoạn code (tệp frmMain.vb, dòng 129 đến dòng 140...). Hai thao tác: lấy số lượng tệp ảnhlấy mảng tên tệp chỉ cần một dòng lệnh thực hiện việc lập mảng tên tệp là đủ, vì chỉ số mảng hay số lượng phần tử mảng cũng là số lượng tệp. Mặt khác, việc quét toàn bộ các thư mục con vẫn bảo đảm có giới hạn, cần đến cấp nào thì quét đến cấp đó.
Số 4: là kiến thức về các định dạng tệp ảnh và năng lực xử lý ảnh của ngôn ngữ lập trình.
 
Góp ý cho bản 1.0.0.2
Từ #11:
Số 1 và 5: là về mặt logic của chương trình, sửa hay không tùy bạn.
Số 2: không phải là thực sự mà là thực tế. Ảnh tải về từ Internet, có lúc nhận được là .gif, .jpg, .png nhưng không phải thế, nó là .webp
Số 3: Muốn nói về kỹ thuật lập trình. Trong chương trình của bạn, để xử lý cho 3 cấp thư mục bạn phải viết lặp lại 6 lần một đoạn code (tệp frmMain.vb, dòng 129 đến dòng 140...). Hai thao tác: lấy số lượng tệp ảnhlấy mảng tên tệp chỉ cần một dòng lệnh thực hiện việc lập mảng tên tệp là đủ, vì chỉ số mảng hay số lượng phần tử mảng cũng là số lượng tệp. Mặt khác, việc quét toàn bộ các thư mục con vẫn bảo đảm có giới hạn, cần đến cấp nào thì quét đến cấp đó.
Số 4: là kiến thức về các định dạng tệp ảnh và năng lực xử lý ảnh của ngôn ngữ lập trình.
Số 2: Như đã nói từ đầu, mình viết phần mềm này để phục vụ việc tạo file PDF truyện tranh, mà truyện tranh mình còn chưa thấy ai đưa ra file webp với đuôi gì khác cả. Tuy vậy, phiên bản 1.0.0.2 đã khắc phục lỗi này, bạn có thể thử.
Số 3: Mình không tìm thấy trong bộ .NET Framework 4.0 lệnh nào lấy mảng như bạn đã nói. MSDN hướng dẫn lấy thư mục con bằng kĩ thuật đệ quy, nhưng mình không muốn đệ quy khi đang dùng multi threading, và mình cảm thấy lấy ba cấp thư mục là đủ rồi.
Số 4: Mình không có kiến thức về định dạng GIF và TIFF, chương trình của mình giao cho .NET Framework xử lý và, như đã nói, mình chưa có điều kiện kiểm tra việc xử lý này. Nếu có báo cáo về lỗi với hai định dạng này thì mình sẽ loại nó khỏi danh sách định dạng mà chương trình hỗ trợ.
 

dammage

Rìu Vàng Đôi
thank bạn đã đóng góp, chưa có nhu cầu xài cái này nhưng tui tính lưu lại để dành, chưa test chưa đọc code luôn (mới ngó sơ biết bạn xài vb thôi
fV2jNq8.gif
), bạn chủ topic cho hỏi mai mốt có ai thích tui share lại được không, nếu được thì bạn nên thêm info trong file nén luôn vì tui lưu rất nhiều source code, mốt share lại có khi không nhớ được đã lấy từ đâu

truyện tranh thì thường người ta sẽ lưu theo truyện, mỗi truyện lại lưu thành chap nên xử lí 3 cấp thư mục tui thấy cũng tạm đủ rồi

mong bạn tiếp tục update đều
 
thank bạn đã đóng góp, chưa có nhu cầu xài cái này nhưng tui tính lưu lại để dành, chưa test chưa đọc code luôn (mới ngó sơ biết bạn xài vb thôi
fV2jNq8.gif
), bạn chủ topic cho hỏi mai mốt có ai thích tui share lại được không, nếu được thì bạn nên thêm info trong file nén luôn vì tui lưu rất nhiều source code, mốt share lại có khi không nhớ được đã lấy từ đâu

truyện tranh thì thường người ta sẽ lưu theo truyện, mỗi truyện lại lưu thành chap nên xử lí 3 cấp thư mục tui thấy cũng tạm đủ rồi

mong bạn tiếp tục update đều
Cảm ơn bạn, như mình đã nói ở đầu topic, các bạn cứ xài, share thoải mái. Chẳng những không phản đối, mình còn cực lực khuyến khích bạn chia sẻ ấy chứ.

Nếu sợ không nhớ lấy từ đâu thì bạn cần phải tự ghi chú mới được. Chứ mình ghi chú chắc gì bạn đã nhớ. Mình nghĩ bạn nên dùng phần mềm quản lý file hoặc link, nếu không rất dễ quên. Bạn có thể thử phần mềm quản lý link do mình viết: https://lamsonthucac.wordpress.com/2017/09/04/danh-muc-web/

Update đều thì khó, vì mình không có thời gian. Với lại chỉ khi nào phát hiện lỗi, sửa xong mới có phiên bản mới. Mình chỉ có thể đảm bảo là khi có phiên bản mới sẽ update ngay thôi.
 
Top