Lỗi vỡ ảnh khi chèn ảnh vào Image trong Form Excel

Liên hệ QC

♫ђöล♥ßล†♥†µ♫

Thành viên tiêu biểu
Tham gia
10/3/18
Bài viết
684
Được thích
1,443
Giới tính
Nữ
Nghề nghiệp
Worksheet Function trong VBA , Thư viện mã lập trình, Scripting.Dictionary, Sổ tay VBA, Các hàm dò tìm và tham chiếu
Em xin Chào các Thầy(Cô); Anh(Chị) và các ạn trong diễn đàn. Chúc Thầy(Cô); Anh(Chị) và các Bạn có một ngày đầu tuần vui vẻ và hạnh phúc.
Hôm nay em có vấn đề này kính mong mọi người giúp đỡ:
Em muốn đưa ảnh vào trong khung Image của Form Excel . Mục đích là để chọn được hình vẽ sơ họa rồi chèn hình vẽ đó cho các nội dung công việc trong Biên bản kiểm tra
Hiện tại thì các công việc trên đã hoàn thành nhưng có 1 lỗi là khi ảnh được đưa vào khung Image của Form thì nó bị biến dạng không như hình vẽ ban đầu như thế này ạ (Nhiều Anh nó bị biến dạng không thể nhìn ra được hình vẽ ban đầu nữa :rolleyes:)
Hình 1 là hình ảnh
1543203411437.png
Hình 2 là hình đưa vào khung Image
1543203472118.png
Em xin đính kèm tệp tin . Vậy em kính mong Thầy(Cô); Anh(Chị) và các Bạn khắc phục lỗi trêm dùm em với ạ.
Em xin Chân thành cám ơn -\\/.

 

File đính kèm

  • Insert Image.rar
    462.3 KB · Đọc: 31
Nhưng ở đây ta có trường hợp có nhiều điểm cần tạo ít điểm chứ không như bạn thách đố là có ít điểm và cần tạo nhiều điểm. Bạn đọc lại bài của mình thì thấy đúng là ngược.
Chú xem lại nguyên văn cháu nói cái. Hình như cháu dùng chữ nghĩa lủng củng quá sao ạ?
Còn anh nào thành công theo hướng "dùng số điểm ảnh ít hơn để tái tạo được hình bitmap có số điểm ảnh nhiều hơn một cách trung thực như ảnh gốc (trừ ảnh các khối hình học hoặc ảnh gốc có độ phân giải cao)" thì tôi bảo đảm hãng Adobe hoặc Canon, Nikon, Fujfilm... sẵn lòng đặt 1 chỗ làm việc với mức lương triệu đô cho bác đó ngay và luôn.
Rõ ràng là cháu nói "dùng số điểm ảnh ít hơn để tái tạo" mà?
 
Lần chỉnh sửa cuối:
Upvote 0
Bài tôi viết có trích đàng hoàng. Tôi trích lại
Còn anh nào thành công theo hướng "dùng số điểm ảnh ít hơn để tái tạo được hình bitmap có số điểm ảnh nhiều hơn một cách trung thực như ảnh gốc (trừ ảnh các khối hình học hoặc ảnh gốc có độ phân giải cao)" thì tôi bảo đảm hãng Adobe hoặc Canon, Nikon, Fujfilm... sẵn lòng đặt 1 chỗ làm việc với mức lương triệu đô cho bác đó ngay và luôn.
Như thế thì bài #18 chả ngược với bài thách đố #14 là gì?
 
Upvote 0
Cháu nói trong #14 như thế này chú ạ!
Còn anh nào thành công theo hướng "dùng số điểm ảnh ít hơn để tái tạo được hình bitmap có số điểm ảnh nhiều hơn một cách trung thực như ảnh gốc (trừ ảnh các khối hình học hoặc ảnh gốc có độ phân giải cao)" thì tôi bảo đảm hãng Adobe hoặc Canon, Nikon, Fujfilm... sẵn lòng đặt 1 chỗ làm việc với mức lương triệu đô cho bác đó ngay và luôn.
Cháu nói trong #18 như thế này chú ạ!
Bác thử so sánh kích thước ảnh gốc ở chế độ zoom 1:1 với ảnh hiển thị trên form thử xem. Giả sử ảnh gốc có kích thước dài rộng lớn gấp đôi ảnh trên form thì có phải ảnh gốc dùng 4 lần số điểm ảnh của màn hình để hiển thị so với hình trên form không ạ?
Ý cháu là hình gốc giả sử tỷ lệ 1:1 hiển thị trên màn hình 1000x1000 (1 triệu điểm) nhưng mà khung ảnh của form chỉ hiển thị 500x500 (250k điểm). Hay nói cách khác là form dùng 250k điểm để mô tả lại 1 triệu điểm của hình gốc. Và so sánh kết quả hiển thị cho thấy ảnh trong khung không mô tả lại được đúng như ảnh gốc khi dùng ít điểm ảnh hơn.

Ý cháu vẫn y xì chứ có ngược gì đâu ạ?
 
Lần chỉnh sửa cuối:
Upvote 0
Cháu nói trong #14 như thế này chú ạ!

Cháu nói trong #18 như thế này chú ạ!

Ý cháu là hình gốc giả sử tỷ lệ 1:1 hiển thị trên màn hình 1000x1000 (1 triệu điểm) nhưng mà khung ảnh của form chỉ hiển thị 500x500 (250k điểm). Hay nói cách khác là form dùng 250k điểm để mô tả lại 1 triệu điểm của hình gốc. Và so sánh kết quả hiển thị cho thấy ảnh trong khung không mô tả lại được đúng như ảnh gốc khi dùng ít điểm ảnh hơn.

Ý cháu vẫn y xì chứ có ngược gì đâu ạ?
Thì cũng chính là cách nói: có ảnh nhiều điểm rồi. Bây giờ trên cơ sở ảnh to, từ nhiều điểm, soạn một ảnh khác có ít điểm hơn.

Và tôi cũng đã nói là quá trình này là (tương đối) bình thường.

Chỉ có trường hợp ngược lại như bài #14: có ảnh ít điểm tạo ảnh nhiều điểm thì mới có vấn đề lớn hơn.

Nhưng tôi cũng nói rồi: nguyên nhân cũng dễ hiểu, cho dù bạn giải thích không được chính xác cho lắm, có thể gây hiểu lầm. Cái quan trọng là đưa ra cách khắc phục.

Tôi đưa ra 2 giải pháp: 1. Co dãn Form, 2. tạo ngay từ đầu EMF, WMF. Bạn đề nghị mua màn hình mới.
 
Upvote 0
Em rất cám ơn các Thầy, Anh Chị đã quan tâm đến Topic của em ạ. Hôm nay em rất vui là có các Anh và Thầy giúp đỡ em ạ
Bài đã được tự động gộp:



Dạ 3tr là 50% lương tháng hiện tại của em ạ. Nhưng co nghiệt gã là họ toàn sử dụng hàm hoặc Sub của GPE Anh ạ
Thì đó vấn nạn từ GPE đã tạo ra những người xài chùa, những người không học gửi bài tập lên giải để chống chế thầy cô
 
Upvote 0
Thì đó vấn nạn từ GPE đã tạo ra những người xài chùa,
Ở Việt Nam "sướng thật". Cần Windows, Office thì cứ ra "tiệm net đầu phố". Ở các nơi khác người ta luôn phải đắn đo: liệu có nên bỏ một khoản lớn ra không? Liệu đã cần tới tận phiên bản xyz chưa? Ở VN luôn dùng đồ mới nhất.
 
Upvote 0
Chỉ có trường hợp ngược lại như bài #14: có ảnh ít điểm tạo ảnh nhiều điểm thì mới có vấn đề lớn hơn.
Nếu chú cứ muốn hiểu ý cháu theo cách hiểu của chú thì cháu cũng nói làm gì nữa ạ. Thực tế thì hiện nay người ta đã có công nghệ tái tạo hình ảnh từ hình nhỏ hơn rồi. Ví dụ bên Mỹ hình chụp vệ tinh có độ phân giải không thể nhìn rõ biển số xe thì có thể biến đổi ra độ phân giải lớn hơn đủ để đọc được biển số xe. (Cũng không rành nên cũng không dám nói sâu về khía cạnh này)

Diễn đạt suông vấn đề này thì rất khó hiểu nên xin gửi minh họa để giúp một số bạn có thể hình dung phần nào những gì xảy ra trong quá trình thu nhỏ hình ảnh.

Ở hình này là cắt từ file ảnh gốc
o.png
Và hình dưới thu được sau khi thu nhỏ lại bằng 70% kích thước hình gốc
o2.png
Để tiện so sánh kết quả, tôi phóng to 2 hình này có kích thước tương đương với chất lượng ảnh hiển thị bảo đảm không sai lệch nhiều sau khi phóng to.

Đây là kết quả của thuật toán thu nhỏ ảnh Microsoft dùng trong Paint. Tôi nói rõ là do nhân viên Microsoft làm chứ không lôi bác Bill nào ở đây nhé nếu không nhiều người hiểu nhầm trình độ của bác ấy mất.

Sau phép thu nhỏ bằng 70% kích thước hình gốc, hình thứ 2 thu được bị nhòe (mất nét) so với hình 1. Thuật toán không thể tái tạo được chi tiết ảnh sau khi thu nhỏ mà nguyên do là... Các bạn nếu hứng thú với vấn đề này thì tự tìm hiểu nhé. Tôi trình độ hạn hẹp nên không dám cố theo mấy vấn đề chuyên sâu thế này vì dễ xoay ra cái ngu bẩm sinh lắm :cray:

Các hãng máy ảnh như Nikon, Canon, Fujifilm cũng gặp vấn đề tương tự như với Paint của Microsoft trong trường hợp số điểm ảnh trên cảm biến nhiều hơn số điểm ảnh của file hình xuất ra vì lý do người dùng muốn tiết kiệm bộ nhớ lưu hình. Ví dụ cảm biến máy ảnh 24 Mpx nhưng người dùng chỉ muốn lưu ở độ phân giải 12Mpx. Nếu người dùng chụp 1 trang văn bản (báo, sách...), cảm biến 24Mpx của máy ảnh thu được chi tiết của nội dung đến mức có thể đọc được (nếu phóng lớn) nhưng khi xuất ra 12Mpx thì lại xảy ra hiện tượng mất nét sau khi phóng lớn.
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu chú cứ muốn hiểu ý cháu theo cách hiểu của chú thì cháu cũng nói làm gì nữa ạ. Thực tế thì hiện nay người ta đã có công nghệ tái tạo hình ảnh từ hình nhỏ hơn rồi. Ví dụ bên Mỹ hình chụp vệ tinh có độ phân giải không thể nhìn rõ biển số xe thì có thể biến đổi ra độ phân giải lớn hơn đủ để đọc được biển số xe. (Cũng không rành nên cũng không dám nói sâu về khía cạnh này)

Diễn đạt suông vấn đề này thì rất khó hiểu nên xin gửi minh họa để giúp một số bạn có thể hình dung phần nào những gì xảy ra trong quá trình thu nhỏ hình ảnh.

Ở hình này là cắt từ file ảnh gốc
View attachment 208340
Và hình dưới thu được sau khi thu nhỏ lại bằng 70% kích thước hình gốc
View attachment 208341
Để tiện so sánh kết quả, tôi phóng to 2 hình này có kích thước tương đương với chất lượng ảnh hiển thị bảo đảm không sai lệch nhiều sau khi phóng to.

Đây là kết quả của thuật toán thu nhỏ ảnh Microsoft dùng trong Paint. Tôi nói rõ là do nhân viên Microsoft làm chứ không lôi bác Bill nào ở đây nhé nếu không nhiều người hiểu nhầm trình độ của bác ấy mất.

Sau phép thu nhỏ bằng 70% kích thước hình gốc, hình thứ 2 thu được bị nhòe (mất nét) so với hình 1. Thuật toán không thể tái tạo được chi tiết ảnh sau khi thu nhỏ mà nguyên do là... Các bạn nếu hứng thú với vấn đề này thì tự tìm hiểu nhé. Tôi trình độ hạn hẹp nên không dám cố theo mấy vấn đề chuyên sâu thế này vì dễ xoay ra cái ngu bẩm sinh lắm :cray:

Các hãng máy ảnh như Nikon, Canon, Fujifilm cũng gặp vấn đề tương tự như với Paint của Microsoft trong trường hợp số điểm ảnh trên cảm biến nhiều hơn số điểm ảnh của file hình xuất ra vì lý do người dùng muốn tiết kiệm bộ nhớ lưu hình. Ví dụ cảm biến máy ảnh 24 Mpx nhưng người dùng chỉ muốn lưu ở độ phân giải 12Mpx. Nếu người dùng chụp 1 trang văn bản (báo, sách...), cảm biến 24Mpx của máy ảnh thu được chi tiết của nội dung đến mức có thể đọc được (nếu phóng lớn) nhưng khi xuất ra 12Mpx thì lại xảy ra hiện tượng mất nét sau khi phóng lớn.
Thôi thì tôi viết lần cuối thế này:
1. Tôi chỉ nói ý của bài 14 và 18 ngược nhau. Không có chỗ nào tôi nói là bài 14, 18 sai hay đúng.

2. Không có chỗ nào tôi nói là phóng to hay thu nhỏ sẽ không làm giảm chất lượng ảnh. Thậm chí tôi còn nói là chắc chắn chất lượng sẽ giảm. Tôi còn viết rõ là theo tôi thì khi thu nhỏ (từ ảnh nhiều pixel thành ảnh ít pixel) thì chất lượng giảm ít hơn so với trường hợp phóng to.

3. Bạn nói chất lượng ảnh phụ thuộc vào độ phân giải màn hình? Khi bạn xem 1 ảnh thì rõ ràng nó phụ thuộc màn hình. Nhưng đây là quá trình hiển thị. Quá trình hiển thị là nhiệm vụ của màn hình và tùy màn hình mà sẽ có hiển thị khác nhau. Nó cũng giống như hiển thị văn bản. Hiển thị văn bản là nhiệm vụ của phông chữ. Tùy theo phông chữ được chọn mà văn bản sẽ có hình hài hơi khác (vd. Arial, Times). Nếu chọn phông chữ khác còn có thể ra "đầu trâu mặt ngựa".
Nhưng khi bước vào so sánh 2 ảnh thì phải mở cả 2 trên cùng 1 màn hình để chúng có điều kiện như nhau, có "xuất phát điểm như nhau", "môi trường biểu diễn" như nhau. Lúc này mọi sự khác biệt giữa ảnh to và nhỏ là do một nguyên nhân khác. Bạn cho cô A câu hỏi B, cô C câu hỏi D mà cô A được điểm 10 còn cô C điểm 5 thì rõ ràng có sự chênh lệch nhưng chưa chắc cô A giỏi hơn C. Khi cô A và B đều làm câu B hoặc D, tức có cùng điều kiện như nhau, có "xuất phát điểm như nhau", "môi trường biểu diễn" như nhau mà cô A được 10 cô C được 5 thì lúc này có thể kết luận được.
Khi 2 ảnh được hiển thị trên trên cùng một màn hình có độ phân giải như nhau mà thấy có sự khác biệt thì sự khác biệt đó chính là do quá trình thu nhỏ phóng to gây ra.

4. Một diễn viên tồi thì khi gặp tình huống dễ vẫn diễn kém nhưng diễn viên giỏi thì gặp tình huống khó vẫn vượt qua thành công.
Nếu tôi có màn hình có độ phân giải tốt và tôi mở tập tin CDMD.png (tập tin cụ thể) của tác giả tôi nhìn thấy tương đối rõ. Bây giờ cũng trên máy đó tôi mở chương trình đồ họa và thu nhỏ chiều ngang còn 50%, chiều dài để nguyên. Làm thế để ảnh có tỷ lệ 2 chiều gần giống tỷ lệ của khung ảnh IMAGE1. Tôi tin chắc rằng ảnh thu nhỏ sẽ không còn nhìn thấy rõ nữa. Chất lượng giảm không chỉ do quá trình thu nhỏ gây ra. Ảnh thu nhỏ không nhìn rõ nữa do bản gốc vốn đã có chất lượng không được tốt. Nếu ảnh CDMD.png rõ từng nét, rõ từng chữ khi hiển thị trên màn hình hiện hành thì ảnh thu nhỏ của nó dù chất lượng có kém hơn thì vẫn nhìn rõ hơn nhiều so với trường hợp ảnh gốc không được chuẩn lắm.

Theo tôi một khi ảnh gốc không chuẩn lắm thì dù có mua màn hình mới thì khi ảnh bị thu nhỏ trong khung IMAGE1 thì nó cũng không nhìn rõ được. Nguyên nhân chính ở đây không phải là độ phân giải của màn hình mà là chất lượng của ảnh gốc (cô diễn viên). Vì thế mà chọn chất lượng cao cho ảnh gốc sẽ đem lại kết quả nhiều hơn. Chất lượng, và theo tôi cả kiểu ảnh - vector graphics sẽ đem lại nhiều kết quả hơn.

Bạn chắc đã nói hết ý của mình. Tôi đã nói hết ý của mình. Tôi nghĩ thế là đủ. Tôi không kết luận bạn sai hay đúng. Chỉ duy hất là nói ý của bài 14 và 18 ngược nhau. Không nói nói bài nào đúng hay sai. Tôi nghĩ không cần giải thích gì thêm. Ai cũng nói hết ý mình rồi. Đây chỉ là bầy tỏ quan điểm chứ không phải tranh luận ai đúng ai sai.
 
Upvote 0
Tôi nghĩ chủ topic nên tìm hiểu thêm về ảnh vector và ảnh raster, và quan trọng hơn hiểu rõ là hình minh họa trên form cái nào cần bỏ đi chi tiết (khi thu nhỏ, chi tiết quá nhỏ sao thấy - trong kỹ thuật người ta phải vẽ riêng ra hoặc sai tỷ lệ ) hay là chọn cách hiển thị thích hợp. Không chỉ thu nhỏ hình đơn thuần được.
 
Upvote 0
Thôi thì tôi viết lần cuối thế này:
1. Tôi chỉ nói ý của bài 14 và 18 ngược nhau. Không có chỗ nào tôi nói là bài 14, 18 sai hay đúng.

2. Không có chỗ nào tôi nói là phóng to hay thu nhỏ sẽ không làm giảm chất lượng ảnh. Thậm chí tôi còn nói là chắc chắn chất lượng sẽ giảm. Tôi còn viết rõ là theo tôi thì khi thu nhỏ (từ ảnh nhiều pixel thành ảnh ít pixel) thì chất lượng giảm ít hơn so với trường hợp phóng to.

3. Bạn nói chất lượng ảnh phụ thuộc vào độ phân giải màn hình? Khi bạn xem 1 ảnh thì rõ ràng nó phụ thuộc màn hình. Nhưng đây là quá trình hiển thị. Quá trình hiển thị là nhiệm vụ của màn hình và tùy màn hình mà sẽ có hiển thị khác nhau. Nó cũng giống như hiển thị văn bản. Hiển thị văn bản là nhiệm vụ của phông chữ. Tùy theo phông chữ được chọn mà văn bản sẽ có hình hài hơi khác (vd. Arial, Times). Nếu chọn phông chữ khác còn có thể ra "đầu trâu mặt ngựa".
Nhưng khi bước vào so sánh 2 ảnh thì phải mở cả 2 trên cùng 1 màn hình để chúng có điều kiện như nhau, có "xuất phát điểm như nhau", "môi trường biểu diễn" như nhau. Lúc này mọi sự khác biệt giữa ảnh to và nhỏ là do một nguyên nhân khác. Bạn cho cô A câu hỏi B, cô C câu hỏi D mà cô A được điểm 10 còn cô C điểm 5 thì rõ ràng có sự chênh lệch nhưng chưa chắc cô A giỏi hơn C. Khi cô A và B đều làm câu B hoặc D, tức có cùng điều kiện như nhau, có "xuất phát điểm như nhau", "môi trường biểu diễn" như nhau mà cô A được 10 cô C được 5 thì lúc này có thể kết luận được.
Khi 2 ảnh được hiển thị trên trên cùng một màn hình có độ phân giải như nhau mà thấy có sự khác biệt thì sự khác biệt đó chính là do quá trình thu nhỏ phóng to gây ra.

4. Một diễn viên tồi thì khi gặp tình huống dễ vẫn diễn kém nhưng diễn viên giỏi thì gặp tình huống khó vẫn vượt qua thành công.
Nếu tôi có màn hình có độ phân giải tốt và tôi mở tập tin CDMD.png (tập tin cụ thể) của tác giả tôi nhìn thấy tương đối rõ. Bây giờ cũng trên máy đó tôi mở chương trình đồ họa và thu nhỏ chiều ngang còn 50%, chiều dài để nguyên. Làm thế để ảnh có tỷ lệ 2 chiều gần giống tỷ lệ của khung ảnh IMAGE1. Tôi tin chắc rằng ảnh thu nhỏ sẽ không còn nhìn thấy rõ nữa. Chất lượng giảm không chỉ do quá trình thu nhỏ gây ra. Ảnh thu nhỏ không nhìn rõ nữa do bản gốc vốn đã có chất lượng không được tốt. Nếu ảnh CDMD.png rõ từng nét, rõ từng chữ khi hiển thị trên màn hình hiện hành thì ảnh thu nhỏ của nó dù chất lượng có kém hơn thì vẫn nhìn rõ hơn nhiều so với trường hợp ảnh gốc không được chuẩn lắm.

Theo tôi một khi ảnh gốc không chuẩn lắm thì dù có mua màn hình mới thì khi ảnh bị thu nhỏ trong khung IMAGE1 thì nó cũng không nhìn rõ được. .
Chú có thể biết quá nhiều về lập trình nhưng hình như không được cập nhật cũng như trải nghiệm nhiều về một số vấn đề kỹ thuật hiện tại thì phải.

Ảnh nếu được phóng to theo bội số nguyên (x1, x2, 3....) thì về nguyên lý vẫn có khả năng bảo đảm nguyên vẹn như ảnh gốc (nhưng tùy thuật toán có biết lợi dụng những trường hợp đó hay không).

Chú có thể chưa bao giờ làm về đồ họa nên hình như không biết độ phân giải màn hình ảnh hưởng đến chất lượng hiển thị như thế nào.
Ví dụ lấy bức hình CDMD.jpg (913x332) để giới hạn trong khung 12cmx12cm của màn hình 14 inchgiữ nguyên tỷ lệ dài/rộng.
  • Nếu độ phân giải HD (1368x768) thì chữ hầu như không đọc được.
  • Nhưng nếu dùng màn hình có độ phân giải fullHD 1080p (1920x1080) thì chữ hiện rõ ràng vì số điểm ảnh mà màn hình 1080p sử dụng để hiện thị ảnh lớn hơn nhiều so với màn HD và gần bằng số điểm ảnh của file hình CDMD.
  • Vấn đề này cũng có thể phát sinh trên cùng một tấm hình cùng kích thước với 2 máy in có DPI chênh lệch lớn.
Cháu từng ngạc nhiên khi gặp 1 chú U50 tậu cho mình một cái màn hình CRT để làm đồ họa và càng ngạc nhiên hơn khi chú nói ra lý do là do cái màn LCD nó hiển thị không chuẩn, ảnh bị méo :shok:. Sau khi lý giải nguyên nhân tại sao cái màn LCD đó hiển thị méo (do độ phân giải không phù hợp) và cách khắc phục thì cái màn CRT đã ra đi cùng đồng nát.--=0

Không phải vô cớ mà độ các hãng màn hình đổ hàng tỷ đô để nâng cao độ phân giải nhưng mà nếu người dùng nếu không hiểu được ý nghĩa của việc đó thì có vẻ các hãng màn hình đang làm những điều lãng phí vô ích.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi nghĩ chủ topic nên tìm hiểu thêm về ảnh vector và ảnh raster, và quan trọng hơn hiểu rõ là hình minh họa trên form cái nào cần bỏ đi chi tiết (khi thu nhỏ, chi tiết quá nhỏ sao thấy - trong kỹ thuật người ta phải vẽ riêng ra hoặc sai tỷ lệ ) hay là chọn cách hiển thị thích hợp. Không chỉ thu nhỏ hình đơn thuần được.
Dạ. Hiện tại thì em đang dùng cách của bài 5. Chựu khó sống với khung Image1 nó nhảy tới nhảy lui ạ. Mới lại cái này chỉ là để quan sát chọn hình gán vào dữ liệu thôi. Chứ còn hình gán xuống bảng tính thì nó vẫn đẹp
Bài đã được tự động gộp:

Coi chừngng cái Nick này là Nick anh nói hôm thứ bảy đó.
Cháu bị đưa vào tầm ngắm rồi hả Chú. Tội nghiệp cho Cháu quá (@$%@
 
Lần chỉnh sửa cuối:
Upvote 0
Sorry bạn hoa lá!
Đến giờ mới tập trung đi vào cái file excel của bạn vì mải cuốn vô bàn luận lý thuyết xa xôi :sweatdrop:. Bạn xem thử cái file này có cải thiện được chút gì không nhé. Nguyên lý giải quyết của mình là:
  1. Hình có kích thước lớn hơn khung thì sẽ thu nhỏ lại vừa bằng khu hình.
  2. Hình có kích thước nhỏ hơn khung hình thì giữ nguyên kích thước 1:1 để chất lượng hiển thị được trung thực nhất.
Chú ý thuộc tính PictureAlignment, PictureAlignment để vận dụng về sau nhé.
Hiển nhiên là mình phải điều chỉnh lại kích cỡ form. Ngoài phần image mình có thêm chút tùy chọn ở GetFileList để giảm bớt file vô ích trong list.
Khả năng chỉ có nhiêu đó nên chắc không dám huyên thuyên thêm nữa:giveup:. Ai có ý gì thì inbox.
 

File đính kèm

  • Insert Image - Copy.xlsm
    73.4 KB · Đọc: 37
Upvote 0
Sorry bạn hoa lá!
Đến giờ mới tập trung đi vào cái file excel của bạn vì mải cuốn vô bàn luận lý thuyết xa xôi :sweatdrop:. Bạn xem thử cái file này có cải thiện được chút gì không nhé. Nguyên lý giải quyết của mình là:
  1. Hình có kích thước lớn hơn khung thì sẽ thu nhỏ lại vừa bằng khu hình.
  2. Hình có kích thước nhỏ hơn khung hình thì giữ nguyên kích thước 1:1 để chất lượng hiển thị được trung thực nhất.
Chú ý thuộc tính PictureAlignment, PictureAlignment để vận dụng về sau nhé.
Hiển nhiên là mình phải điều chỉnh lại kích cỡ form. Ngoài phần image mình có thêm chút tùy chọn ở GetFileList để giảm bớt file vô ích trong list.
Khả năng chỉ có nhiêu đó nên chắc không dám huyên thuyên thêm nữa:giveup:. Ai có ý gì thì inbox.
Dạ em cám ơn Anh rất nhiều. Cách này hay quá. Để mai em xem cái Ảnh minh họa của em lớn nhất xong đặt lại kích thước Form theo cách của Anh chắc là ổn rồi ạ
 
Upvote 0
Thôi tôi viết lần cuối.
Chú có thể biết quá nhiều về lập trình nhưng hình như không được cập nhật cũng như trải nghiệm nhiều về một số vấn đề kỹ thuật hiện tại thì phải.

Ảnh nếu được phóng to theo bội số nguyên (x1, x2, 3....) thì về nguyên lý vẫn có khả năng bảo đảm nguyên vẹn như ảnh gốc (nhưng tùy thuật toán có biết lợi dụng những trường hợp đó hay không).
vd. BMP thì chả có nguyên lý nào đảm bảo. Chỉ có vector graphics là cứu tinh.
Chú có thể chưa bao giờ làm về đồ họa nên hình như không biết độ phân giải màn hình ảnh hưởng đến chất lượng hiển thị như thế nào.
Tôi không bàn về đồ họa nói chung. Vì có những chương trình rất mạnh, và vì thế chúng có giá cao. Không phải vô cớ mà chúng có giá cao. Chúng có thể "chữa", "làm đẹp" những chỗ "mới phát sinh", những pixel phát sinh khi phóng to ảnh (raster).

Tôi bàn ở đây là bàn về nguyên nhân chính trong trường hợp cụ thể của tác giả. Và cố đưa ra giải pháp cho trường hợp cụ thể này. Tôi không bàn về đồ họa và các chương trình đồ họa nói chung. Bạn nói là ảnh trog Image1 "không nhìn được" là do màn hình? Và bạn đề xuất mua màn hình mới? Tôi tin chắc rằng sau khi mua màn hình mới thì ảnh trong Image1 vẫn không nhìn được. Lý do:
1. Ảnh gốc vốn không rõ từng nét, từng chữ.
2. Khi load ảnh vào Image1 thì VBA thực thi chứ không phải những chương trình đồ họa đắt tiền kia thực thi. Vì thế ảnh không thể "đẹp" như khi thao tác trong các chương trình đồ họa kia.

VBA khi xử lý ảnh khi load vào Image là a ma tơ chứ không phải chuyên gia như những chương trình đồ họa đắt tiền. Khi nguồn đã kém chất lượng và được xử lý bởi a ma tơ thì ảnh trong Image càng kém. Mà đã kém thì màn hình chỉ có thể giúp chút ít chứ không thể biến ảnh kém chất lượng thành ảnh chuẩn được.

Hướng đi đúng đắn không phải là mua màn hình mà là vector graphics và soạn ảnh nguồn có chất lượng cao. Đây chỉ là ý kiến chủ quan của tôi. Không áp đặt ai.

Bạn nghĩ là tôi không biết gì về đồ họa cũng được. Tôi cũng chả muốn tranh luận về đồ họa nói chung. Bạn hãy đưa ra giải pháp của mình để giúp chủ chủ đề giải quyết được vấn đề. Riêng tôi ngoài cái co dãn Form (cách đối phó) thì tôi đề nghị vector graphics và soạn nguồn có chất lượng cao.

Bạn đừng cho là tôi tranh luận để quyết thắng thua với ai. Bạn cứ nói quan điểm của mình, tôi cũng nói quan điểm của tôi. Nếu không đồng quan điểm thì cùng ký biên bản "những ý khác nhau" rồi dừng. Không cần ăn thua gì ở đây.

Tôi dừng tại đây.
 
Upvote 0
[QUOTE="
Cháu từng ngạc nhiên khi gặp 1 chú U50 tậu cho mình một cái màn hình CRT để làm đồ họa và càng ngạc nhiên hơn khi chú nói ra lý do là do cái màn LCD nó hiển thị không chuẩn, ảnh bị méo :shok:. [/QUOTE]
Hình như cái zụ này là do cái màn hình CRT nó hiển thị màu thực hớn áh
 
Upvote 0
Sorry bạn hoa lá!
Đến giờ mới tập trung đi vào cái file excel của bạn vì mải cuốn vô bàn luận lý thuyết xa xôi :sweatdrop:. Bạn xem thử cái file này có cải thiện được chút gì không nhé. Nguyên lý giải quyết của mình là:
  1. Hình có kích thước lớn hơn khung thì sẽ thu nhỏ lại vừa bằng khu hình.
  2. Hình có kích thước nhỏ hơn khung hình thì giữ nguyên kích thước 1:1 để chất lượng hiển thị được trung thực nhất.
Chú ý thuộc tính PictureAlignment, PictureAlignment để vận dụng về sau nhé.
Hiển nhiên là mình phải điều chỉnh lại kích cỡ form. Ngoài phần image mình có thêm chút tùy chọn ở GetFileList để giảm bớt file vô ích trong list.
Khả năng chỉ có nhiêu đó nên chắc không dám huyên thuyên thêm nữa:giveup:. Ai có ý gì thì inbox.
Vấn đề là giải quyết cho khung ảnh nhỏ như ban đầu chứ khung to thì dễ rồi. Trong bài của tôi là co dãn Form nhưng cũng có thể thiết kế Form to ngay từ đầu với Image1 to đùng thì không cần co dãn nữa. Thế thôi
 
Upvote 0
Hình như cái zụ này là do cái màn hình CRT nó hiển thị màu thực hớn áh
Giả sử được quay ngược lại thời điểm cách đây hơn 10 năm khi mà những cái màn hình CRT còn được sản xuất trong khi công nghệ màn hình LCD thì vẫn còn chưa phát triển nhiều thì một cái màn CRT mới tinh vẫn có chất lượng hình ảnh đủ đe 1 cái màn LCD mới khui.
Nhưng bây giờ nhìn 1 cái màn CRT 10 năm tuổi với màu sắc thì đã nhạt nhòa, đèn hình thì chớp chớp liên tục thì chưa kịp nhận ra là màu sắc có chuẩn không thì mắt đã hoa lên rồi o_O. Bây giờ kiếm được cái màn CRT còn sử dụng tốt thì khó hơn mò kim đáy bể. Nếu đem so với mấy em siêu mỏng IPS với Led đời mới thì chắc...
 
Upvote 0
Giả sử được quay ngược lại thời điểm cách đây hơn 10 năm khi mà những cái màn hình CRT còn được sản xuất trong khi công nghệ màn hình LCD thì vẫn còn chưa phát triển nhiều thì một cái màn CRT mới tinh vẫn có chất lượng hình ảnh đủ đe 1 cái màn LCD mới khui.
Nhưng bây giờ nhìn 1 cái màn CRT 10 năm tuổi (kiếm được cái màn CRT trẻ hơn thì khó hơn mò kim) với màu sắc thì đã nhạt nhòa, đèn hình thì chớp chớp liên tục thì chưa kịp nhận ra là màu sắc có chuẩn không thì mắt đã hoa lên rồi o_O.
hihi cái naỳ thì đúng rồi ý hihihihih
 
Upvote 0
Thôi thì dùng cách co dãn Form. :D

W module Form sửa thành
Mã:
Private w As Double, h As Double
...
Private Sub UserForm_Initialize()
    Pth = DefinenameValue("LinkfileMH")
    If CheckDir(Pth) = True Then
        Image1.PictureSizeMode = fmPictureSizeModeStretch
        If NameExists("LinkfileMH") = True Then
            PthMyfolder = Pth
            ListBox1.List = GetFileList(PthMyfolder)
        End If
    Else
        MsgBox "Kiem tra lai duong dan file anh minh hoa"
    End If
    Image1,Autosize = TRUE
    w = Image1.width
    h = Image1.height
End Sub

Private Sub ListBox1_Click()
    With ListBox1
        If .ListCount Then
            NameImage = .List(.ListIndex)
            Image1.Picture = LoadPictureGDI(Pth & "\" & .List(.ListIndex))
            If Image1.width > w Then
                Frame4.width = Image1.width + 108
                Me.width = Image1.width + 130
            Else
                Image1.width = w
                Frame4.width = w + 108
                Me.width = w + 130
            End If
            If Image1.height > h Then
                Frame4.height = Image1.height + 60
                Me.height = Image1.height + 94
            Else
                Image1.height = h
                Frame4.height = h + 60
                Me.height = h + 94
            End If
        End If
    End With
End Sub
Thầy cho hỏi copy code này vào phần nào vậy ạ? Thầy nói chi tiết giúp em mới!
Cảm ơn thầy!
 
Upvote 0
Upvote 0
Web KT
Back
Top Bottom