# Horizontal Keystone Correction on video output

I want to place my projector in the side of my room instead of straight in front of my screen. The problem is that if I do that I'll obviously get a distorted image, much taller on the opposite side of the screen. Do any of you know if there is any software to digitally edit the horizontal keystone of the computers video output? I'm using the VGA output of my computer.

I'm using Windows 8 on my MacBook Pro.

-

Since you didn't specify the OS, I feel free to assume it's GNU/Linux. In that case, there is `xrandr` command, with the `--transform` option. Have fun! (:

From `xrandr` man page (check out the other options, like `--out`):

``````--transform a,b,c,d,e,f,g,h,i
``````

Specifies a transformation matrix to apply on the output. Automatically a bilinear filter is selected. The mathematical form corresponds to:

``````a b c
d e f
g h i
``````

The transformation is based on homogeneous coordinates. The matrix multiplied by the coordinate vector of a pixel of the output gives the transformed coordinate vector of a pixel in the graphic buffer. More precisely, the vector (x y) of the output pixel is extended to 3 values (x y w), with 1 as the w coordinate and multiplied against the matrix. The final device coordinates of the pixel are then calculated with the so-called homogenic division by the transformed w coordinate. In other words, the device coordinates (x'y') of the transformed pixel are:

``````x' = (ax + by + c) / w' and
y' = (dx + ey + f) / w' ,
with  w' = (gx + hy + i)  .
``````

Typically, `a` and `e` corresponds to the scaling on the X and Y axes, `c` and `f` corresponds to the translation on those axes, and `g`, `h`, and `i` are respectively 0, 0 and 1. The matrix can also be used to express more complex transformations such as keystone correction, or rotation. For a rotation of an angle T, this formula can be used:

`````` cos T  -sin T   0
sin T   cos T   0
0       0      1
``````

As a special argument, instead of passing a matrix, one can pass the string `none`, in which case the default values are used (a unit matrix without filter).

-
I'm sorry, that's stupid of me. I'm using Window 8 (on my MacBook Pro 13', mid 2009 (I think), if that makes any difference) . Thanks for trying though. – Punchlinern Apr 19 '13 at 19:40