2017-09-19 15 views
8

Vấn đề của tôi là trong quá trình co giãn mịn được áp dụng cho canvas Skia (với phương thức concat), văn bản sẽ có tỷ lệ trong "spurts", không thống nhất. Vấn đề này đặc biệt rõ ràng trên nền tảng Android với back-end FreeType 2. Tôi tin rằng đây là cách mở rộng văn bản chung trong Skia - trước tiên áp dụng kích thước văn bản cho công cụ phông chữ, sau đó trích xuất bitmap glyph và chuyển đổi nó bằng ma trận "còn lại" để đạt được kích thước cuối cùng mong muốn. Nhưng bằng cách nào đó, việc chia tỷ lệ còn lại cuối cùng sẽ không được áp dụng, điều này dẫn đến các đột biến trong suốt quá trình chuyển đổi giữa các giá trị tích phân của kích thước văn bản. Điều tương tự với Java/Android thuần túy dường như hoạt động không hoàn hảo (vảy văn bản trơn tru).Chia tỷ lệ văn bản không đồng nhất trong Skia (BackType 2 miễn phí)

Câu hỏi của tôi là làm cách nào để khắc phục hành vi đó? Có thể có một số cờ cấu hình xây dựng mà tôi có thể tinh chỉnh, có thể là SkPaint cờ thời gian chạy?

Sửa đổi Skia là m59.

Trả lời

3

Tôi không biết Skia, nhưng nói chung khi tôi thấy hành vi này với văn bản mở rộng quy mô, đó là vì bạn đang truyền phao tỷ lệ của bạn thành một int.

float scale = someValue; 
int someOtherVar = scale; 
... some scaling math on someOtherVar... 
text.setScale(someOtherVar) 

này sẽ gây ra những hành vi được mô tả

Không bao giờ chuyển đổi bất kỳ biến rộng để int cho đến bước cuối cùng.

+0

Cảm ơn bạn. Điều này chắc chắn không phải là trường hợp ở đây bởi vì bất kỳ hình học nào khác trên canvas cân đúng và mượt mà. Và tôi không áp dụng bất kỳ quy mô bổ sung nào về văn bản hay gì đó. – vganin

Các vấn đề liên quan