0
Я пытаюсь заполнить изображение внутри прямоугольника. Я смог правильно установить положение изображения в крайний левый угол прямоугольника. Однако масштабирование не работает должным образом. Любая помощь по этому поводу ценится. Ниже мой код. Это изображение размером 1290 * 1990.Заполните прямоугольник изображением с помощью библиотеки Mono Cairo
Cairo.Rectangle imageRectangle = new Cairo.Rectangle(50, 100, width, height);
ctx.NewPath();
Cairo.ImageSurface imgSurface = new Cairo.ImageSurface("C:/Temp/Image.png");
ctx.SetSource(imgSurface, topLeftPoint); //topLeft is (50,100)
float xScale = (float)imageRectangle.Width/(float)imgSurface.Width;
float yScale = (float)imageRectangle.Height/(float)imgSurface.Height;
//Reposition the image to the rectangle origin
ctx.Translate(imageRectangle.X, imageRectangle.Y);
ctx.Scale(xScale, yScale);
ctx.Paint();
Спасибо!
Каковы значения 'xScale' и' yScale'? – kennyzx
Рассчитано динамически. В одном из тестовых примеров это значения, imageRectangle.Width = 387.7299, \t \t imageRectangle.Height = 596.663147, So xScale = 0.299868435 и yScale = 0.299830735 –