Ferramentas para capturar e converter a Web

Capturar capturas de tela de sites ou converter HTML em imagensAPI Ruby

Produza capturas de tela de imagem melhores de páginas da Web ou converta HTML diretamente em imagens usando os seguintes recursos de API Ruby do GrabzIt. No entanto, antes de começar, lembre-se de que depois de ligar para o url_to_image, html_to_image or file_to_image métodos os save or save_to O método deve ser chamado para criar a imagem.

Opções Básicas

Apenas um parâmetro é necessário para tirar uma captura de tela de uma página da web ou converter HTML intoa imagem como mostrado no exemplo a seguir.

grabzItClient.url_to_image("https://www.tesla.com")
# Then call the save or save_to method
grabzItClient.html_to_image("<html><body><h1>Hello World!</h1></body></html>")
# Then call the save or save_to method
grabzItClient.file_to_image("example.html")
# Then call the save or save_to method

Formatos de imagem

A API Ruby do GrabzIt pode capturar capturas de tela de imagem em vários formatos, incluindo JPG, PNG, WEBP, BMP (bits 8, bits 16, bits 24 ou bits 32) e TIFF. O formato padrão para capturas de tela de imagens é JPG. No entanto, a qualidade de uma imagem JPG pode não ser boa o suficiente para alguns aplicativos nessas circunstâncias. O formato PNG é recomendado para capturas de tela de imagem, pois oferece um bom equilíbrio entre qualidade e tamanho do arquivo. O exemplo abaixo mostra uma captura de tela da imagem sendo usada no formato PNG.

grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.format = "png"

grabzItClient.url_to_image("https://www.tesla.com", options)
# Then call the save or save_to method
grabzItClient.save_to("result.png")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.format = "png"

grabzItClient.html_to_image("<html><body><h1>Hello World!</h1></body></html>", options)
# Then call the save or save_to method
grabzItClient.save_to("result.png")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.format = "png"

grabzItClient.file_to_image("example.html", options)
# Then call the save or save_to method
grabzItClient.save_to("result.png")

Tamanho do navegador

O tamanho do navegador se refere ao tamanho da janela do navegador que será usada ao capturar a captura de tela na maioria dos casos, isso não precisa ser definido, pois o tamanho padrão do navegador será suficiente para quase todas as tarefas. Para definir o tamanho do navegador, basta passar um valor para o browserWidth e nos browserHeight métodos do ImageOptions classe.

Alterar tamanho da imagem

É fácil alterar o tamanho de uma imagem, sem distorcer a imagem, é um pouco mais difícil. Para simplificar todo o processo, recomendamos que você use este calculadora de dimensão de imagem simples.

Se você deseja aumentar a largura e a altura da imagem para um tamanho maior que a largura e a altura do navegador, que por padrão é 1024 por pixels 728, a largura e a altura do navegador também devem ser aumentadas para corresponder.

Identificador Personalizado

Você pode passar um identificador personalizado para o imagem Como mostrado abaixo, esse valor é retornado ao seu manipulador GrabzIt Ruby. Por exemplo, esse identificador personalizado pode ser um identificador de banco de dados, permitindo que uma captura de tela seja associada a um registro específico do banco de dados.

grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.customId = "123456"

grabzItClient.url_to_image("https://www.tesla.com", options)
# Then call the save method
grabzItClient.save("http://www.example.com/handler/index")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.customId = "123456"

grabzItClient.html_to_image("<html><body><h1>Hello World!</h1></body></html>", options)
# Then call the save method
grabzItClient.save("http://www.example.com/handler/index")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.customId = "123456"

grabzItClient.file_to_image("example.html", options)
# Then call the save method
grabzItClient.save("http://www.example.com/handler/index")

Captura de tela completa

O GrabzIt permite que você tire uma captura de tela completa de uma página da web inteira para fazer isso. Você precisa passar um -1 para o browserHeight método. Para garantir que a imagem corresponda ao tamanho do navegador, passe -1 para o height e nos width atributos.

grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.browserHeight = -1
options.width = -1
options.height = -1

grabzItClient.url_to_image("https://www.tesla.com", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.browserHeight = -1
options.width = -1
options.height = -1

grabzItClient.html_to_image("<html><body><h1>Hello World!</h1></body></html>", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.browserHeight = -1
options.width = -1
options.height = -1

grabzItClient.file_to_image("example.html", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")

Você também pode retornar miniaturas que não são cortadas, mas cuidado, isso pode criar imagens grandes. Para fazer isso, passe um -1 para o height e / ou width métodos. A dimensão que é passada por um -1 não será cortada.

grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.width = -1
options.height = -1

grabzItClient.url_to_image("https://www.tesla.com", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.width = -1
options.height = -1

grabzItClient.html_to_image("<html><body><h1>Hello World!</h1></body></html>", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")
grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

options = GrabzIt::ImageOptions.new()
options.width = -1
options.height = -1

grabzItClient.file_to_image("example.html", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")
Observe que não há largura total do navegador!

O uso desses valores especiais significa que você pode criar uma captura de tela que seja uma versão em escala completa de toda a página da web, se desejar!

Captura de tela de um elemento da página

O GrabzIt permite tirar uma captura de tela de um elemento HTML, como um div or span tag e capture todo o seu conteúdo. Para fazer isso, o elemento HTML que você deseja capturar a tela deve ser especificado como um Seletor CSS.

...
<div id="features">
	<img src="http://www.example.com/rocket.jpg"/><h3>Rocket Launch Next Week</h3>
</div>
...

Para o exemplo abaixo, selecionaremos a div com o ID "features" e a produziremos como uma imagem JPEG 250 x 250px.

grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

# The 250 parameters indicates that image should be sized to 250 x 250 px
options = GrabzIt::ImageOptions.new()
options.width = 250
options.height = 250
options.format = "jpg"
options.targetElement = "#features"

grabzItClient.url_to_image("http://www.bbc.co.uk/news", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")

O próximo exemplo tira outra captura de tela da div "features", mas desta vez gera uma imagem JPEG com o tamanho exato da div.

grabzItClient = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")

# The -1 indicates that image should not be cropped
options = GrabzIt::ImageOptions.new()
options.width = 250
options.height = 250
options.format = "jpg"
options.targetElement = "#features"
options.browserHeight = -1

grabzItClient.url_to_image("http://www.bbc.co.uk/news", options)
# Then call the save or save_to method
grabzItClient.save_to("result.jpg")