---
title: "Image to Text (OCR)"
description: "Free online OCR. Upload a photo, screenshot, or scan and pull out the text using a vision LLM. No sign-up, no watermark. Powered by a Pixeltable vision computed column."
keywords:
  - image to text
  - extract text from image
  - free ocr online
  - screenshot to text
  - photo to text
  - ocr image to text
url: "https://pixeltable.com/tools/image-to-text"
---

# Image to Text (OCR)

Free online OCR. Upload a photo, screenshot, or scan and pull out the text using a vision LLM. No sign-up, no watermark. Powered by a Pixeltable vision computed column.

Free online tool by Pixeltable. Run it at https://pixeltable.com/tools/image-to-text (interactive, no sign-up).

## Features

- Vision LLM OCR
- Copy editable text
- Handwriting and screenshots
- Free

## FAQ

### How does image to text work?

Upload an image and a vision AI model reads the text in it and returns it as editable text you can copy.

### What languages are supported?

The vision model handles most common languages and mixed-language images.

### Is it free?

Yes, completely free with no sign-up required.


## Fact sheet

Last updated 2026-09-23.

| Fact | Value |
| --- | --- |
| Modality | Image |
| Inputs | Image plus an instruction |
| Outputs | Model text about the image |
| Computed column | gemini.generate_content on the image and the prompt |
| What updates | A new or changed row recomputes only that row. Unchanged rows stay cached. |
| Canonical doc | [gemini.generate_content](https://docs.pixeltable.com/sdk/latest/gemini#udf-generate_content) |

```python
import pixeltable as pxt
from pixeltable.functions.gemini import generate_content

TableModel = pxt.model_base()

class Ocr(TableModel, name='ocr'):
    source_image: pxt.Image
    prompt: pxt.String

    vision_response = generate_content(
        contents=[source_image, prompt],
        model='gemini-2.5-flash',
    )
```