What it is for
Phone photos arrive as HEIC. Pages on the web hand you WebP. Newer sites hand you AVIF. The picture looks fine until a form, a print shop, or another computer asks for a JPEG or a PNG. The usual advice is to upload the file to a converter site. That works, and it also means a stranger's server has the photo, including whatever was in the background and any metadata the format still carried.
FromHEIC does the conversion in the tab instead. You add files, the browser decodes them, a canvas writes a JPG or a PNG, and you download the result or a ZIP of the batch. There is no account, no watermark, and no cap on how many files you convert. The limit is the memory of the device you are using.
What it will not do
It will not remove a background, upscale a photo, or run a filter. It will not keep Live Photo video, portrait depth maps, or a stack of burst frames. It will not copy EXIF into the new file. It will not decode AVIF on a server when your browser cannot. Those are different products. This one stays a converter, on purpose, so the privacy claim stays easy to check: view the source, and there is no request that posts the file.
How HEIC decoding is loaded
WebP and AVIF use the decoder built into the browser. HEIC does not, on most desktops, so the first HEIC conversion in a visit downloads a separate decoder file from this same site. That download is software, not your photo. The file is the unmodified CSP build of heic-to, which wraps libheif and libde265. It is loaded with a dynamic import. It is not compiled into the page's own script, and the rest of the site is not placed under the LGPL because of it. Details, copyright lines, and the steps for replacing the file are below.
Questions go to contact@fromheic.com. The address is set in the site config. Read the privacy policy before you assume anything about logs or future ads. It describes what the site does now.
Open-source notices
HEIC decoding uses the libraries below. They are free software under the GNU Lesser General Public License, version 3 or any later version. A copy of the LGPL, the GPL it refers to, and the upstream license files are served with this site. The decoder runs inside the page, so these notices are part of the product, not a footnote in a repository you are expected to hunt down.
- heic-to 1.6.7, heic-to/csp, LGPL-3.0-or-later. Author: Hopper Gee. Source: https://github.com/hoppergee/heic-to. License: LGPL-3.0 text shipped with heic-to. The file this site loads is /vendor/heic-to/heic-to.js, unmodified.
- libheif 1.23.7, LGPL-3.0-or-later. Copyright (c) 2017 Dirk Farin and contributors. The heic-to 1.6.7 release notes name this libheif version. Source: https://github.com/strukturag/libheif. License: libheif COPYING.
- libde265, LGPL-3.0-or-later. Copyright (c) 2013-2014 struktur AG, Dirk Farin. libheif uses libde265 to decode HEVC image data. The heic-to build notes for this generation reference libde265 1.0.16. This site does not rebuild that library. Source: https://github.com/strukturag/libde265. License: libde265 COPYING.
- The GPL version 3, which the LGPL incorporates by reference, is at /licenses/gpl-3.0.txt. A plain-text copy of this notice is at /licenses/notices.txt.
The decoder is a separate file. The page imports it only after a HEIC or HEIF file is added. WebP and AVIF pages do not load it. No integrity hash pins the URL. To use a modified libheif, replace that file with an ES module that still exports heicTo and isHeic. heicTo must accept { blob, type: "bitmap" } and return a promise of an ImageBitmap. The site's own pages and scripts are not licensed under the LGPL.
ZIP files are built in the browser with JSZip 3.10.2. That package is dual-licensed under the MIT license or GPL-3.0-or-later. This site uses it under the MIT license. Copyright (c) 2009-2016 Stuart Knightley, David Duponchel, Franz Buchinger, António Afonso. Source: https://github.com/Stuk/jszip. License: JSZip license.