2011-09-26 32 views

Trả lời

8

Đây là câu trả lời đầu tiên của tôi, vì vậy hy vọng tôi sẽ không bị đánh quá nặng. Vì không ai khác trả lời điều này, và tôi đã dành một chút thời gian cho việc này hôm nay, tôi nghĩ tôi sẽ cung cấp một số mã.

Lý do chính khiến quá trình này mất quá nhiều thời gian, vì lý do gì đó, mô phỏng devserver của API hình ảnh không hoạt động chính xác và hình ảnh tổng hợp không chính xác khi sử dụng máy chủ. Tôi đã chi tiêu mãi mãi với các giá trị trong devserver, cho đến khi tôi vừa tải lên mã thử nghiệm cho AppEngine, và nó hoạt động như mong đợi. Argg!

Dù sao, mã bên dưới giả sử bạn có hai hình ảnh 300x300, một trong hình ảnh và khác trong hình ảnh, bạn muốn dán song song vào canvas mới 600x300, được tạo trong Image newImage:

List<Composite> listComposites=new ArrayList<Composite>(); 

Composite aPaste = ImagesServiceFactory.makeComposite(aImage, 0, 0, 1f, Composite.Anchor.TOP_LEFT); 
listComposites.add(aPaste); 

Composite bPaste = ImagesServiceFactory.makeComposite(bImage, 300, 0, 1f, Composite.Anchor.TOP_LEFT); 
listComposites.add(bPaste); 

Image newImage = imagesService.composite(listComposites, 600, 300, 0xff333333L, ImagesService.OutputEncoding.JPEG); 

Vị trí sửa ảnh đầu tiên đặt hình ảnh đầu tiên tại vị trí 0,0 so với TOP_LEFT. Thứ hai makeComposite đặt hình ảnh thứ hai tại 300,0. Cả hai đều được dán với opacity 1.0. Hi vọng điêu nay co ich. Mã này lưu kết quả ở định dạng JPEG. Và, một lần nữa, đối với tôi, điều này KHÔNG LÀM VIỆC trong devserver, nhưng hoạt động như mong đợi trên nền tảng App Engine thực sự.

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