function _GuiPro.gradient(colors)
    local direction = colors.direction or "horizontal"
	colors.direction=nil
	trans = colors.trans or 1
	trans=math.floor(trans)
    if direction == "horizontal" then
        direction = true
    elseif direction == "vertical" then
        direction = false
    else
        error("Invalid direction '" .. tostring(direction) "' for gradient.  Horizontal or vertical expected.")
    end
    local result = love.image.newImageData(direction and 1 or #colors, direction and #colors or 1,"rgba32f")
    for __i, color in ipairs(colors) do
        local x, y
        if direction then
            x, y = 0, __i - 1
        else
            x, y = __i - 1, 0
        end
        result:setPixel(x, y, color[1], color[2], color[3], trans)
    end
    result = love.graphics.newImage(result)
    result:setFilter('linear', 'linear')
    return result
end
function _GuiPro.drawinrect(img, x, y, w, h, r, ox, oy, kx, ky)
    love.graphics.draw(img, x, y, r, w / img:getWidth(), h / img:getHeight(), ox, oy, kx, ky)
end
function gui:ApplyGradient(rules)
	self.Image=nil
	self.Type=self.Type.."w/GradImage"
	self.rotation=0
	self.ImageVisibility=rules.visibility or 1
	self:SetImage(_GuiPro.gradient(rules))
end