2011-01-13 37 views
6

Ngay bây giờ mục tiêu của tôi là có văn bản chống răng cưa trên Nhãn của tôi. Nếu nghiên cứu của tôi là chính xác, nhãn SWT không hỗ trợ chống răng cưa trên văn bản, do đó, nỗ lực khắc phục hiện tại của tôi là tạo hình ảnh, bật tính năng chống răng cưa văn bản, vẽ văn bản của tôi đến hình ảnh đó, sau đó đưa hình ảnh đó vào Nhãn .Tại sao tính năng chống răng cưa văn bản không hoạt động, trong khi sử dụng GC GC để vẽ văn bản?

mã vẽ hình ảnh hiện tại của tôi là như sau:

Image image = new Image(Display.getDefault(), width, height); 
GC gc = new GC(image); 

gc.setAntialias(SWT.ON); 
gc.setTextAntialias(SWT.ON); 

gc.setBackground(background); 
gc.fillRectangle(0, 0, width, height); 

gc.setFont(font); 
gc.setForeground(foreground); 

int yPos = offset.y; 
for (String rawLine : lines) 
{ 
    String line = rawLine.trim(); 
    Point lineSize = gc.textExtent(line); 
    int xPos = offset.x; 
    switch (alignment) 
    { 
    case SWT.RIGHT: 
     xPos += width - lineSize.x; 
     break; 
    case SWT.CENTER: 
     xPos += width/2 - lineSize.x/2; 
     break; 
    case SWT.LEFT: 
    default: 
     xPos += 0; 
    } 
    gc.drawText(line, xPos, yPos, true); 
    yPos += lineSize.y; 
} 

gc.dispose(); 
return image; 

tôi đã có kết quả không phù hợp trên hai máy tính khác nhau: Tại nơi làm việc, văn bản trong hình ảnh kết quả xuất hiện như choppy như ever- như nếu văn bản chống -aliasing thậm chí không trên. Nhưng ở nhà, kết nối với máy tính công việc của tôi thông qua máy tính để bàn từ xa, tôi đã thấy chính xác kết quả tôi muốn.

Rõ ràng là tôi muốn mọi thứ hoạt động chính xác trên cả hai máy tính, nhưng hiện tại tôi đang bối rối về lý do tại sao chúng không hoạt động. Mỗi máy tính đang chạy Windows 7, Eclipse v3.6.

Điều gì có thể gây ra sự không thống nhất này? Và nếu cách giải quyết của tôi chỉ là vô lý và tôi hoàn toàn bỏ lỡ một cách dễ dàng hơn, theo cách đó là gì? Cảm ơn bạn đã giúp đỡ!

+0

Có thể hai máy đang cố gắng chống bí danh hai phông chữ khác nhau? – MusiGenesis

+0

Cả hai đều nên sử dụng phông chữ "Tahoma". – Dylan

+0

Tôi đoán là do sự khác biệt giữa các card đồ họa trong hai máy. SWT sử dụng các tiện ích gốc của hệ điều hành, bao gồm bất kỳ đặc quyền phần cứng nào được hệ điều hành sử dụng. Vì vậy, tôi sẽ xem xét trao đổi card đồ họa tại nơi làm việc, nếu có thể. Có lẽ thậm chí nhìn vào các cấp độ vá của mỗi máy mặc dù cả hai đều sử dụng Windows 7. –

Trả lời

1

Kiểm tra xem hỗ trợ văn bản Anti-Aliased có được định cấu hình khác nhau trên cả hai máy trong Bảng điều khiển không. Trong XP, bạn cần phải chắc chắn rằng ClearType đã được kích hoạt.

http://www.microsoft.com/typography/cleartype/tuner/step1.aspx

Bạn cũng có thể xem bài viết này. Nó có thể đóng một vai trò.

http://www.ytechie.com/2008/12/cleartype-in-remote-desktop-with-xp.html

+0

Tôi sẽ xem xét điều này, cảm ơn. – Dylan

0

Nếu bạn không thể làm cho nó hoạt động trong SWT, có lẽ bạn có thể thử hiển thị hình ảnh Swing và sao chép các điểm ảnh kết quả.

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