Использование chromedp для отображения объекта PNG из строки HTML

#chromedp

#chromedp

Вопрос:

Я очень новичок в Chromedp. Я знаю, как отобразить изображение из URL-адреса для Chromdp, но есть ли способ отобразить его из самой строки HTML с помощью Chromedp? Я могу преобразовать URL-адрес в изображение, используя следующее:

 func fullScreenshot(urlstr string, quality int64, res *[]byte) chromedp.Tasks {
    return chromedp.Tasks{
        chromedp.Navigate(urlstr),
        chromedp.Sleep(3 * time.Second),
        chromedp.ActionFunc(func(ctx context.Context) error {
            // get layout metrics
            _, _, contentSize, err := page.GetLayoutMetrics().Do(ctx)
            if err != nil {
                return err
            }

            width, height := int64(math.Ceil(contentSize.Width)), int64(math.Ceil(contentSize.Height))

            // force viewport emulation
            err = emulation.SetDeviceMetricsOverride(width, height, 1, false).
                WithScreenOrientation(amp;emulation.ScreenOrientation{
                    Type:  emulation.OrientationTypePortraitPrimary,
                    Angle: 0,
                }).
                Do(ctx)
            if err != nil {
                return err
            }

            // capture screenshot
            *res, err = page.CaptureScreenshot().
                WithQuality(quality).
                WithClip(amp;page.Viewport{
                    X:      contentSize.X,
                    Y:      contentSize.Y,
                    Width:  contentSize.Width,
                    Height: contentSize.Height,
                    Scale:  1,
                }).Do(ctx)
            if err != nil {
                return err
            }
            return nil
        }),
    }
}
  

Комментарии:

1. Что вы пробовали? Не могли бы вы поделиться примерами кода для этого? С какими конкретными проблемами вы сталкиваетесь?

2. Моя проблема заключается в том, как использовать Chromedp для получения строки html и рендеринга изображения вместо перехода к URL-адресу

3. @SalilKanetkar Вы нашли решение, я тоже застрял в том же варианте использования