크기 조정 된 이미지로 bytearray를 표시하려고합니다. 이미지가 올바르게 표시되지만 크기 조정은 꺼져 있습니다. 설명하겠습니다.디코딩 된 ByteArray의 이미지 크기 조정
먼저 내가 인코딩 된 영상 데이터 그래서이 작품 이미지 데이터
// Instantiate decoder
var decoder:Base64Decoder = new Base64Decoder();
// Decode image data
decoded.decode(picture.data);
// Export data as a byteArray
var byteArray:ByteArray = decoder.toByteArray();
// Display image
var img:Image = new Image();
img.load(byteArray);
를 디코딩 할 필요가있다. 이미지가 올바르게 표시됩니다. 그러나 이미지 (img) 높이를 하드 코딩하면 크기가 조정 된 이미지가 올바르게 표시되지만 원본 이미지의 크기가있는 상자 안에 표시됩니다.
예를 들어 원본 이미지의 높이가 300px이고 너비가 200px이고 img.height 속성이 75로 설정된 경우, 높이가 75 인 리사이징 된 이미지가 올바르게 표시됩니다. 크기가 조정 된 이미지는 여전히 300px의 높이와 200px의 너비로 설정된 img 컨테이너의 왼쪽 상단 모서리에 표시됩니다. 왜 그렇게합니까? 그리고 그 수정은 무엇입니까?
문제를 설명하는 가장 좋은 방법은 이미지를 VBox 내부에 배치하고 VBox의 테두리를 표시하는 것입니다. 위의 코드 블록에서 이미지 높이를 변경하고 가로 세로 비율을 유지하도록 이미지를 설정하면 (기본적으로 true로 설정되지만 여기에 전체를 추가합니다). 문제는 분명해진다.
// Display image
var img:Image = new Image();
img.height = 75; // Hardcode image height (thumbnail)
img.maintainAspectRatio = true;
img.load(byteArray);
// Encapsulate the image inside a VBox to illustrate the problem
var vb:VBox = new VBox();
vb.setStyle('borderStyle', 'solid');
vb.setStyle('borderColor', 'red');
vb.setStyle('borderThickness', 2);
vb.addChild(img);
저는 며칠 동안이 문제를 해결하기 위해 노력해 왔으며 해결 방법을 찾지 못했습니다. 어떤 아이디어? 내가 뭘 놓치고 있니? 다음