2009-04-26 35 views
5

Tôi có trình xem hình ảnh mà tôi đã viết bằng Flex có quy mô kích thước của hình ảnh bạn hiện đang xem dựa trên kích thước của trình duyệt. Đây là hình thức của thẻ:Chất lượng chia tỷ lệ hình ảnh Adobe Flex

<mx:Image id="img" 
    maintainAspectRatio="true" 
    source="{horizontalList.selectedItem.image}-large.jpg" 
    height="100%" 
    horizontalCenter="0" 
    horizontalAlign="center" 
    top="5" 
    width="{horizontalList.width}" 
    updateComplete="onImageChange()" 
    click="onImgClick()" 
    /> 

Kích thước hình ảnh ban đầu luôn lớn hơn diện tích của trình duyệt và rất tiếc, Flex dường như không làm giảm kích thước hình ảnh. Trên thực tế, HTML trong IE thực hiện công việc tốt hơn nhiều nếu tôi sử dụng thẻ hình ảnh của nó. Có một thiết lập "chất lượng" để mở rộng quy mô trong Flex mà tôi đang thiếu?

Cảm ơn.

Trả lời

0

Đây là điểm khiến bạn bận tâm với Flex 3 - sử dụng hình ảnh trong điều khiển danh sách. Bạn phải rất cẩn thận để có được quyền mở rộng quy mô.

Tại sao không thử phát xung quanh với các kết hợp khác nhau của các thuộc tính scaleContentmaintainAspectRatio của các điều khiển Image?

Đây là hướng dẫn về scaling Hình ảnh.

+0

Cảm ơn đã phản ứng. Điều khiển hình ảnh của tôi không nằm trong một điều khiển danh sách. Nó chỉ sử dụng một điều khiển danh sách riêng biệt làm tham chiếu đến kích thước của chính nó. Tôi đã đọc hướng dẫn bạn đã liên kết, nhưng nó không thực sự nói về chất lượng hình ảnh. Câu hỏi cơ bản của tôi là: Làm thế nào để bạn kiểm soát chất lượng khi downscaling một hình ảnh? Theo mặc định, Flex dường như có rất nhiều vấn đề về răng cưa khi thu nhỏ hình ảnh. Cảm ơn. –

0

cố gắng để thiết lập chiều rộng và chiều cao của điều khiển để kích thước của hình ảnh và thiết lập thuộc tính scaleContent true tài sản

0

bộ scaleContent true

1

Tìm hiểu về Flash Smoothing Issue Tôi phát hiện ra vài năm trước và tôi viết blog về. Về cơ bản, hình ảnh có một kích thước lẻ (s) không được làm mịn.

Để khắc phục vấn đề này sử dụng đoạn mã sau:

var smoothBitmapData : BitmapData = new BitmapData(
    loadedBitmap.width + (loadedBitmap.width % 2), 
    loadedBitmap.height + (loadedBitmap.height % 2), 
    true, 0x00FF0000); 
smoothBitmapData.draw(loadedBitmap, null, null, null, null, true); 

smoothBitmap = new Bitmap(smoothBitmapData, PixelSnapping.NEVER, true); 
Các vấn đề liên quan