250
251- **Redirects:** Use `return new Response(null, { status: 302, headers: { Location: "/place/to/redirect" }})` instead of `Response.redirect` which is broken
252- **Images:** Avoid external images or base64 images. Use emojis, unicode symbols, or icon fonts/libraries instead
253- **AI Image:** To inline generate an AI image use: `<img src="https://maxm-imggenurl.web.val.run/the-description-of-your-image" />`
254- **Storage:** DO NOT use the Deno KV module for storage
255- **Browser APIs:** DO NOT use the `alert()`, `prompt()`, or `confirm()` methods
372
373The new function should return the relevant content of a given issue in markdown format.
374The relevant content is the text comments, including URLs (of links and images) included in them.
375
376</knowledge>
178
179- **Redirects:** Use `return new Response(null, { status: 302, headers: { Location: "/place/to/redirect" }})` instead of `Response.redirect` which is broken
180- **Images:** Avoid external images or base64 images. Use emojis, unicode symbols, or icon fonts/libraries instead
181- **AI Image:** To inline generate an AI image use: `<img src="https://maxm-imggenurl.web.val.run/the-description-of-your-image" />`
182- **Storage:** DO NOT use the Deno KV module for storage
183- **Browser APIs:** DO NOT use the `alert()`, `prompt()`, or `confirm()` methods
324 className="border-2 border-gray-600 rounded"
325 style={{
326 imageRendering: 'pixelated',
327 imageRendering: '-moz-crisp-edges',
328 imageRendering: 'crisp-edges'
329 }}
330 />
72}
73
74// Render a single character to ImageData
75export function renderGlyph(font: GFXFont, char: string): ImageData | null {
76 const charCode = char.charCodeAt(0);
77 if (charCode < font.first || charCode > font.last) return null;
82 if (!glyph || glyph.width === 0 || glyph.height === 0) return null;
83
84 // Create ImageData for this glyph
85 const canvas = document.createElement('canvas');
86 const ctx = canvas.getContext('2d')!;
87 const imageData = ctx.createImageData(glyph.width, glyph.height);
88
89 // Extract bitmap data for this glyph
101
102 // Set RGBA values
103 imageData.data[pixelIndex] = pixel ? 255 : 0; // R
104 imageData.data[pixelIndex + 1] = pixel ? 255 : 0; // G
105 imageData.data[pixelIndex + 2] = pixel ? 255 : 0; // B
106 imageData.data[pixelIndex + 3] = pixel ? 255 : 0; // A
107 }
108 }
109
110 return imageData;
111}
112
1# TranscribeThing
2
3An image transcription tool that extracts text from images and converts it to Markdown format.
4
5## 📱 CLI Installation & Usage
14
15```bash
16# Transcribe text from an image
17tt transcribe image.jpg
18tt t screenshot.png # Short alias
19
6 <title>TranscribeThing</title>
7 <link rel="stylesheet" href="/public/style.css">
8 <link rel="icon" href="/public/favicon.svg" sizes="any" type="image/svg+xml">
9 </head>
10 <body>
7 <title>React Hono Val Town Starter</title>
8 <!-- <link rel="stylesheet" href="/public/style.css"> -->
9 <link rel="icon" href="/public/favicon.svg" sizes="any" type="image/svg+xml">
10 <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
11 <script type="importmap">
26 created_at: string;
27 profile_banner_url: string;
28 profile_image_url_https: string;
29 can_dm: boolean;
30}
152 name: `${user.name} (@${user.screen_name})`,
153 url: `https://x.com/${user.screen_name}`,
154 icon_url: user.profile_image_url_https,
155 },
156 fields: [
165 };
166
167 // Add image if present
168 const mediaEntities = tweet.entities.media;
169 if (mediaEntities && mediaEntities.length > 0) {
170 embed.image = {
171 url: mediaEntities[0].media_url_https,
172 };
104 display: block;
105 border-radius: 4px;
106 image-rendering: pixelated;
107 border: 2px solid #333;
108 }
15made by [jenn](https://jennschiffer.com), forked by stevekrouse
16
17