Yêu cầu thg 4 1, 2018 1:19 SA 138 3 1
  • 138 3 1
+3

Auto create image when register new account without upload avatar. How can we do that?

Chia sẻ
  • 138 3 1
  • Em có một vấn đề mà chắc chắn nhiều người sẽ có chung câu hỏi ạ.
  • Hiện tại e đang code một trang web (diễn đàn ạ) những e có một nỗi khổ tâm là làm thế nào khi mình tạo tài khoản mới, mà không upload ảnh đại diện thì nó sẽ tự tạo ra một cái ảnh chứa 2,3 từ viết tắt của tên ạ.
  • Nếu ai có kinh nghiệm trong viêc này có thể cho e xin ý kiến hoặc từ khóa để e search được không ạ?

1 CÂU TRẢ LỜI


Đã trả lời thg 4 1, 2018 11:19 SA
Đã được chấp nhận
+6

Phân tích vấn đề

Xin chào bạn, câu hỏi bạn đặt ra mình xin tách làm 2 vấn đề:

  • Thứ nhất, vấn đề tạo ra từ viết tắt
  • Thứ hai, vấn đề về tạo ảnh

Vấn đề tạo từ viết tắt

Mình nghĩ vấn đề này ko có gì khó đối với bạn, mình nên tạo một quy tắc cho tên viết tắt:

VD: Tên: Nguyễn Hữu Kim, giả sử quy tắc là từ đầu tiên là First name, viết hoa chữ cái đầu, các ký tự tiếp theo sau là viết tắt của họ đệm - viết in hoa. Sử dụng tiếng Việt không dấu. Khi đó:

Nguyễn Hữu Kim => Tên viết tắt: KimNH

Với quy tắc trên, cách làm là:

  • Chuẩn hóa chuỗi họ đệm, tên về dạng không dấu, mỗi từ chỉ cách nhau một dấu cách. Có thể sử dụng các helper: trim, str_replacestr_slug...
  • Lấy ra các ký tự viết tắt từ họ đệm. Có thể sử dụng helper: str_explode theo dấu cách rồi lấy ký tự đầu tiên, hoặc sử dụng regex. Sau đó nối Tên + Các ký tự viết tắt lại. (tạm thời bỏ qua TH tên có nhiều hơn 1 từ. VD: Lan Anh).

Vấn đề tên viết tắt tạm thời được giải quyết. Mỗi quy tắc bạn sẽ có cách giải quyết tương ứng nên phần này phải dựa vào quy tắc của bạn.

Vấn đề tạo ảnh từ tên viết tắt.

Vấn đề này hết sức đơn giản, bạn sử dụng: https://placeholdit.imgix.net là xong. Place Hold It sẽ tạo ảnh từ một text mà bạn gửi lên. VD: https://placeholdit.imgix.net/~text?txtsize=17&txt=JavaScript&w=100&h=100&txttrack=0

Kết quả:

Bạn có thể thay thế các tham số:

  • txt: Tên viết tắt đã tạo
  • txtSize: Font size cho từ sẽ tạo ra trong ảnh.
  • w: Chiều rộng
  • h: Chiều cao

Bạn có thể đọc thêm tại trang document của https://placeholdit.imgix.net.

Chia sẻ
Avatar Jimmy Nguyen @minhtuancnttk39
thg 4 2, 2018 12:28 SA

Em cám ơn a ạ....

thg 4 2, 2018 1:05 SA

@minhtuancnttk39 Không có gì bạn. Hihi

thg 4 2, 2018 7:13 SA

Good answer 😄

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí