Skip to content

Commit

Permalink
Update README, update docs, support pluto and stumpy conversions
Browse files Browse the repository at this point in the history
  • Loading branch information
Vici37 committed Mar 24, 2023
1 parent 770447b commit 900322c
Show file tree
Hide file tree
Showing 58 changed files with 7,182 additions and 1,385 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ benchmark:

.PHONY: docs
docs:
crystal doc src/cr-image.cr
crystal doc src/docs.cr --project-name="Crystal Image" --source-refname=$(shell git rev-parse HEAD)
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ require "cr-image"
require "cr-image/jpeg"
require "cr-image/png"
require "cr-image/webp"
# Or, alternatively
require "cr-image/all_formats"
```

### Example
Expand Down Expand Up @@ -66,6 +69,34 @@ Yields this image:

[See documentation](http://troy.sornson.io/cr-image/) for more examples.

### (Pluto)[https://github.com/phenopolis/pluto] and (Stumpy)[https://github.com/stumpycr/stumpy_core] Conversion

If your library or application already uses Pluto or Stumpy and you want to use
some of the functionality of this library, CrImage also provides some optional
conversion methods:

```crystal
require "cr-image/pluto"
pluto_image # => Pluto::ImageRGBA
pluto_image_rgba.to_crimage # => CrImage::RGBAImage
cr_image # => CrImage::RGBAImage
cr_image.to_pluto # => Pluto::ImageRGBA
```

```crystal
require "cr-image/stumpy"
stumpy_canvas # => StumpyCore::Canvas
stumpy_canvas.to_crimage # => CrImage::RGBAImage
cr_image # => CrImage::RGBAImage
cr_image.to_stumpy # => StumpyCore::Canvas
```

*NOTE:* Stumpy uses `UInt16` for its underlying raw image storage per channel per pixel, while Pluto and
CrImage uses `UInt8`. Converting from a Stumpy `Canvas` object to `RGBAImage` may lose quality if the original
image used 16 bit color channels (i.e. 16-bit PNG). Most image formats tend to use 8-bit color channels.

## Development

This requires `libwebp`, `libspng`, and `libturbojpeg` to run. Then:
Expand Down
116 changes: 83 additions & 33 deletions docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="generator" content="Crystal Docs 1.6.2">
<meta name="crystal_docs.project_version" content="master">
<meta name="crystal_docs.project_name" content="cr-image">
<meta name="crystal_docs.project_version" content="master-dev">
<meta name="crystal_docs.project_name" content="Crystal Image">



<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/doc.js"></script>

<meta name="repository-name" content="cr-image">
<title>cr-image master</title>
<meta name="repository-name" content="Crystal Image">
<title>Crystal Image master-dev</title>
<script type="text/javascript">
CrystalDocs.base_path = "";
</script>
Expand All @@ -34,12 +34,12 @@
<div class="project-summary">
<h1 class="project-name">
<a href="index.html">
cr-image
Crystal Image
</a>
</h1>

<span class="project-version">
master
master-dev
</span>
</div>
</div>
Expand All @@ -51,117 +51,142 @@ <h1 class="project-name">
<div class="types-list">
<ul>

<li class="parent " data-id="cr-image/CrImage" data-name="crimage">
<li class="parent " data-id="Crystal Image/CrImage" data-name="crimage">
<a href="CrImage.html">CrImage</a>

<ul>

<li class=" " data-id="cr-image/CrImage/ChannelType" data-name="crimage::channeltype">
<li class=" " data-id="Crystal Image/CrImage/ChannelType" data-name="crimage::channeltype">
<a href="CrImage/ChannelType.html">ChannelType</a>

</li>

<li class=" " data-id="cr-image/CrImage/Color" data-name="crimage::color">
<li class=" " data-id="Crystal Image/CrImage/Color" data-name="crimage::color">
<a href="CrImage/Color.html">Color</a>

</li>

<li class=" " data-id="cr-image/CrImage/Exception" data-name="crimage::exception">
<li class=" " data-id="Crystal Image/CrImage/Exception" data-name="crimage::exception">
<a href="CrImage/Exception.html">Exception</a>

</li>

<li class="parent " data-id="cr-image/CrImage/Format" data-name="crimage::format">
<li class="parent " data-id="Crystal Image/CrImage/Format" data-name="crimage::format">
<a href="CrImage/Format.html">Format</a>

<ul>

<li class=" " data-id="cr-image/CrImage/Format/Open" data-name="crimage::format::open">
<li class=" " data-id="Crystal Image/CrImage/Format/JPEG" data-name="crimage::format::jpeg">
<a href="CrImage/Format/JPEG.html">JPEG</a>

</li>

<li class=" " data-id="Crystal Image/CrImage/Format/Open" data-name="crimage::format::open">
<a href="CrImage/Format/Open.html">Open</a>

</li>

<li class=" " data-id="cr-image/CrImage/Format/PPM" data-name="crimage::format::ppm">
<li class=" " data-id="Crystal Image/CrImage/Format/PNG" data-name="crimage::format::png">
<a href="CrImage/Format/PNG.html">PNG</a>

</li>

<li class=" " data-id="Crystal Image/CrImage/Format/PPM" data-name="crimage::format::ppm">
<a href="CrImage/Format/PPM.html">PPM</a>

</li>

<li class=" " data-id="cr-image/CrImage/Format/Save" data-name="crimage::format::save">
<li class=" " data-id="Crystal Image/CrImage/Format/Save" data-name="crimage::format::save">
<a href="CrImage/Format/Save.html">Save</a>

</li>

<li class=" " data-id="Crystal Image/CrImage/Format/WebP" data-name="crimage::format::webp">
<a href="CrImage/Format/WebP.html">WebP</a>

</li>

</ul>


</li>

<li class=" " data-id="cr-image/CrImage/GrayscaleImage" data-name="crimage::grayscaleimage">
<li class="parent " data-id="Crystal Image/CrImage/GrayscaleImage" data-name="crimage::grayscaleimage">
<a href="CrImage/GrayscaleImage.html">GrayscaleImage</a>

<ul>

<li class=" " data-id="Crystal Image/CrImage/GrayscaleImage/Pixel" data-name="crimage::grayscaleimage::pixel">
<a href="CrImage/GrayscaleImage/Pixel.html">Pixel</a>

</li>

<li class=" " data-id="cr-image/CrImage/Image" data-name="crimage::image">
</ul>


</li>

<li class=" " data-id="Crystal Image/CrImage/Image" data-name="crimage::image">
<a href="CrImage/Image.html">Image</a>

</li>

<li class=" " data-id="cr-image/CrImage/Mask" data-name="crimage::mask">
<li class=" " data-id="Crystal Image/CrImage/Mask" data-name="crimage::mask">
<a href="CrImage/Mask.html">Mask</a>

</li>

<li class="parent " data-id="cr-image/CrImage/Operation" data-name="crimage::operation">
<li class="parent " data-id="Crystal Image/CrImage/Operation" data-name="crimage::operation">
<a href="CrImage/Operation.html">Operation</a>

<ul>

<li class=" " data-id="cr-image/CrImage/Operation/BilinearResize" data-name="crimage::operation::bilinearresize">
<li class=" " data-id="Crystal Image/CrImage/Operation/BilinearResize" data-name="crimage::operation::bilinearresize">
<a href="CrImage/Operation/BilinearResize.html">BilinearResize</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/BoxBlur" data-name="crimage::operation::boxblur">
<li class=" " data-id="Crystal Image/CrImage/Operation/BoxBlur" data-name="crimage::operation::boxblur">
<a href="CrImage/Operation/BoxBlur.html">BoxBlur</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/Brightness" data-name="crimage::operation::brightness">
<li class=" " data-id="Crystal Image/CrImage/Operation/Brightness" data-name="crimage::operation::brightness">
<a href="CrImage/Operation/Brightness.html">Brightness</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/ChannelSwap" data-name="crimage::operation::channelswap">
<li class=" " data-id="Crystal Image/CrImage/Operation/ChannelSwap" data-name="crimage::operation::channelswap">
<a href="CrImage/Operation/ChannelSwap.html">ChannelSwap</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/Contrast" data-name="crimage::operation::contrast">
<li class=" " data-id="Crystal Image/CrImage/Operation/Contrast" data-name="crimage::operation::contrast">
<a href="CrImage/Operation/Contrast.html">Contrast</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/Crop" data-name="crimage::operation::crop">
<li class=" " data-id="Crystal Image/CrImage/Operation/Crop" data-name="crimage::operation::crop">
<a href="CrImage/Operation/Crop.html">Crop</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/Draw" data-name="crimage::operation::draw">
<li class=" " data-id="Crystal Image/CrImage/Operation/Draw" data-name="crimage::operation::draw">
<a href="CrImage/Operation/Draw.html">Draw</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/GaussianBlur" data-name="crimage::operation::gaussianblur">
<li class=" " data-id="Crystal Image/CrImage/Operation/GaussianBlur" data-name="crimage::operation::gaussianblur">
<a href="CrImage/Operation/GaussianBlur.html">GaussianBlur</a>

</li>

<li class="parent " data-id="cr-image/CrImage/Operation/HistogramEqualize" data-name="crimage::operation::histogramequalize">
<li class="parent " data-id="Crystal Image/CrImage/Operation/HistogramEqualize" data-name="crimage::operation::histogramequalize">
<a href="CrImage/Operation/HistogramEqualize.html">HistogramEqualize</a>

<ul>

<li class=" " data-id="cr-image/CrImage/Operation/HistogramEqualize/Histogram" data-name="crimage::operation::histogramequalize::histogram">
<li class=" " data-id="Crystal Image/CrImage/Operation/HistogramEqualize/Histogram" data-name="crimage::operation::histogramequalize::histogram">
<a href="CrImage/Operation/HistogramEqualize/Histogram.html">Histogram</a>

</li>
Expand All @@ -171,17 +196,17 @@ <h1 class="project-name">

</li>

<li class=" " data-id="cr-image/CrImage/Operation/HorizontalBlur" data-name="crimage::operation::horizontalblur">
<li class=" " data-id="Crystal Image/CrImage/Operation/HorizontalBlur" data-name="crimage::operation::horizontalblur">
<a href="CrImage/Operation/HorizontalBlur.html">HorizontalBlur</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/MaskApply" data-name="crimage::operation::maskapply">
<li class=" " data-id="Crystal Image/CrImage/Operation/MaskApply" data-name="crimage::operation::maskapply">
<a href="CrImage/Operation/MaskApply.html">MaskApply</a>

</li>

<li class=" " data-id="cr-image/CrImage/Operation/VerticalBlur" data-name="crimage::operation::verticalblur">
<li class=" " data-id="Crystal Image/CrImage/Operation/VerticalBlur" data-name="crimage::operation::verticalblur">
<a href="CrImage/Operation/VerticalBlur.html">VerticalBlur</a>

</li>
Expand All @@ -191,14 +216,39 @@ <h1 class="project-name">

</li>

<li class=" " data-id="cr-image/CrImage/Region" data-name="crimage::region">
<li class=" " data-id="Crystal Image/CrImage/Region" data-name="crimage::region">
<a href="CrImage/Region.html">Region</a>

</li>

<li class=" " data-id="cr-image/CrImage/RGBAImage" data-name="crimage::rgbaimage">
<li class="parent " data-id="Crystal Image/CrImage/RGBAImage" data-name="crimage::rgbaimage">
<a href="CrImage/RGBAImage.html">RGBAImage</a>

<ul>

<li class=" " data-id="Crystal Image/CrImage/RGBAImage/Pixel" data-name="crimage::rgbaimage::pixel">
<a href="CrImage/RGBAImage/Pixel.html">Pixel</a>

</li>

</ul>


</li>

</ul>


</li>

<li class="parent " data-id="Crystal Image/StumpyCore" data-name="stumpycore">
<a href="StumpyCore.html">StumpyCore</a>

<ul>

<li class=" " data-id="Crystal Image/StumpyCore/Canvas" data-name="stumpycore::canvas">
<a href="StumpyCore/Canvas.html">Canvas</a>

</li>

</ul>
Expand Down
Loading

0 comments on commit 900322c

Please sign in to comment.