3This is a lightweight Blob Admin interface to view and debug your Blob data.
4
5
6
7Use this button to install the val:
1Fancy animated SVGs in readmes, along with centering and image sizing.
2```
3<div align="center"><img width=200 src="https://gpanders.com/img/DEC_VT100_terminal.jpg"></div>
89 {
90 headers: {
91 "Content-Type": "image/svg+xml",
92 },
93 },
8 title?: string;
9 author?: string;
10 coverImage?: string;
11 };
12 currentlyWatching?: {
13 title?: string;
14 platform?: string;
15 posterImage?: string;
16 };
17 };
37 <div className="flex items-center">
38 <img
39 src={user.currentlyReading.coverImage}
40 alt={user.currentlyReading.title}
41 className="w-20 h-28 mr-4"
52 <div className="flex items-center">
53 <img
54 src={user.currentlyWatching.posterImage}
55 alt={user.currentlyWatching.title}
56 className="w-20 h-28 mr-4"
11 { name: 'currently_reading_title', type: 'TEXT' },
12 { name: 'currently_reading_author', type: 'TEXT' },
13 { name: 'currently_reading_cover_image', type: 'TEXT' },
14 { name: 'currently_watching_title', type: 'TEXT' },
15 { name: 'currently_watching_platform', type: 'TEXT' },
16 { name: 'currently_watching_poster_image', type: 'TEXT' },
17];
18
3import { blob } from "https://esm.town/v/std/blob?v=12";
4import { fileToDataURL } from "https://esm.town/v/stevekrouse/fileToDataURL";
5import { modifyImage } from "https://esm.town/v/stevekrouse/modifyImage";
6import { chat } from "https://esm.town/v/stevekrouse/openai";
7import { Hono } from "npm:hono@3";
23 <html>
24 <head>
25 <title>Image downsizer & saver</title>
26 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
27 <script src="https://cdn.tailwindcss.com" />
52 type="file"
53 id="file"
54 accept="image/*"
55 name="file"
56 />
101 console.log(key);
102
103 /* parse the mimetype out of file-image/png-blahblah */
104 const type = key.split("-")[1];
105
3import { blob } from "https://esm.town/v/std/blob?v=12";
4import { fileToDataURL } from "https://esm.town/v/stevekrouse/fileToDataURL";
5import { modifyImage } from "https://esm.town/v/stevekrouse/modifyImage";
6import { chat } from "https://esm.town/v/stevekrouse/openai";
7import { Hono } from "npm:hono@3";
23 <html>
24 <head>
25 <title>Image downsizer & saver</title>
26 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
27 <script src="https://cdn.tailwindcss.com" />
52 type="file"
53 id="file"
54 accept="image/*"
55 name="file"
56 />
101 console.log(key);
102
103 /* parse the mimetype out of file-image/png-blahblah */
104 const type = key.split("-")[1];
105
1# Image downsizer and uploader
2
3
4Migrated from folder: Archive/blobImages
1/**
2 * upload an image to val.town
3 * @param {Blob} image - image must have image/jpeg, image/png, image/webp, image/gif or image/svg+xml content-type
4 * @returns {string} - uploaded image url
5 */
6export async function uploadImage(image: Blob): Promise<string> {
7 const fd = new FormData();
8 fd.append(
9 "file",
10 image,
11 );
12 const data = await (await fetch(await getUploadURL(), {
24}
25async function getUploadURL(): Promise<string> {
26 const data = await (await fetch("https://www.val.town/api/trpc/generateImageUploadUrl", {
27 "headers": {
28 "content-type": "application/json",
1# uploadImage
2uploads an image to val.town just like when you paste an image into a readme