Tôi có đoạn mã này. Tôi không hiểu ma trận.prescale() và createBitmap với ma trận được truyền. Điều đó có nghĩa là gì? Có trang web mô phỏng nào để hiểu tính toán ma trận không? Bạn có thể cho tôi một số trang web về toán học được sử dụng cho đồ họa không? Tôi xin lỗi vì tôi không giỏi môn toán. :)Hiểu rõ ma trận tính toán
public Bitmap createReflectedImages(final Bitmap originalImage) {
final int width = originalImage.getWidth();
final int height = originalImage.getHeight();
final Matrix matrix = new Matrix();
matrix.preScale(1, -1);
final Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, (int) (height * imageReflectionRatio),
width, (int) (height - height * imageReflectionRatio), matrix, false);
final Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (int) (height + height * imageReflectionRatio + 400),
Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmapWithReflection);
canvas.drawBitmap(originalImage, 0, 0, null);
final Paint deafaultPaint = new Paint();
deafaultPaint.setColor(color.transparent);
canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
final Paint paint = new Paint();
final LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0,
bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint);
return bitmapWithReflection;
}
Tôi thấy rằng bạn đã chỉnh sửa bài đăng của mình. Tôi có thể trả lời cho tôi nhiều hơn không? – Simon
Quá trừu tượng để hiểu nhưng không sao cả. Tôi thấy khó hiểu ma trận chuyển đổi và đại số. – Emerald214