| Apr | MAY | Jun |
| 06 | ||
| 2020 | 2021 | 2022 |
COLLECTED BY
Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
History is littered with hundreds of conflicts over the future of a community, group, location or business that were "resolved" when one of the parties stepped ahead and destroyed what was there. With the original point of contention destroyed, the debates would fall to the wayside. Archive Team believes that by duplicated condemned data, the conversation and debate can continue, as well as the richness and insight gained by keeping the materials. Our projects have ranged in size from a single volunteer downloading the data to a small-but-critical site, to over 100 volunteers stepping forward to acquire terabytes of user-created data to save for future generations.
The main site for Archive Team is at archiveteam.org and contains up to the date information on various projects, manifestos, plans and walkthroughs.
This collection contains the output of many Archive Team projects, both ongoing and completed. Thanks to the generous providing of disk space by the Internet Archive, multi-terabyte datasets can be made available, as well as in use by the Wayback Machine, providing a path back to lost websites and work.
Our collection has grown to the point of having sub-collections for the type of data we acquire. If you are seeking to browse the contents of these collections, the Wayback Machine is the best first stop. Otherwise, you are free to dig into the stacks to see what you may find.
The Archive Team Panic Downloads are full pulldowns of currently extant websites, meant to serve as emergency backups for needed sites that are in danger of closing, or which will be missed dearly if suddenly lost due to hard drive crashes or server failures.
Collection: Archive Team: URLs
-clamp to your command-line to constrain pixels to the 0 .. QuantumRange range, or disable HDRI when you build ImageMagick version 7. To disable HDRI (recommended for smart phone builds such as iOS or production sites where performance is a premium), simply add --disable-hdri to the configure script command line when building ImageMagick.
for (y=0; y < (ssize_t) image->rows; y++)
{
IndexPacket
*indexes;
PixelPacket
*q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
if (q == (PixelPacket *) NULL)
{
status=MagickFalse;
continue;
}
indexes=GetCacheViewAuthenticIndexQueue(image_view);
for (x=0; x < (ssize_t) image->columns; x++)
{
if ((channel & RedChannel) != 0)
q->red=(Quantum) QuantumRange-q->red;
if ((channel & GreenChannel) != 0)
q->green=(Quantum) QuantumRange-q->green;
if ((channel & BlueChannel) != 0)
q->blue=(Quantum) QuantumRange-q->blue;
if (((channel & IndexChannel) != 0) &&
(image->colorspace == CMYKColorspace))
indexes[x]=(IndexPacket) QuantumRange-indexes[x];
q++;
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
status=MagickFalse;
}
ImageMagick version 7 supports any number of channels from 1 to 64 (and beyond) and simplifies access with a single method that returns an array of pixel channels of type Quantum. Source code that compiles against prior versions of ImageMagick requires refactoring to work with ImageMagick version 7. We illustrate with an example. Let's naively refactor the version 6 code snippet from above so it works with the ImageMagick version 7 API:
for (y=0; y < (ssize_t) image->rows; y++)
{
Quantum
*q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
if (q == (Quantum *) NULL)
{
status=MagickFalse;
continue;
}
for (x=0; x < (ssize_t) image->columns; x++)
{
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
SetPixelRed(image,QuantumRange-GetPixelRed(image,q),q);
if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
SetPixelGreen(image,QuantumRange-GetPixelGreen(image,q),q);
if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
SetPixelBlue(image,QuantumRange-GetPixelBlue(image,q),q);
if ((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0)
SetPixelBlack(image,QuantumRange-GetPixelBlack(image,q),q);
if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
SetPixelAlpha(image,QuantumRange-GetPixelAlpha(image,q),q);
q+=GetPixelChannels(image);
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
status=MagickFalse;
}
Let's do that again but take full advantage of the new variable pixel channel support:
for (y=0; y < (ssize_t) image->rows; y++)
{
Quantum
*q;
q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
if (q == (Quantum *) NULL)
{
status=MagickFalse;
continue;
}
for (x = 0; x < (ssize_t) image->columns; x++)
{
ssize_t
i;
if (GetPixelWriteMask(image,q) <= (QuantumRange/2))
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel channel = GetPixelChannelChannel(image,i);
PixelTrait traits = GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
q[i]=QuantumRange-q[i];
}
q+=GetPixelChannels(image);
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
status=MagickFalse;
}
Note, how we use GetPixelChannels() to advance to the next set of pixel channels.
The colormap indexes and black pixel channel (for the CMYK colorspace) are no longer stored in the index channel, previously accessed with GetAuthenticIndexQueue() and GetCacheViewAuthenticIndexQueue(). Instead they are now a first class pixel channel and accessed as a member of the pixel array (e.g. pixel[4]) or with the convenience pixel accessor methods GetPixelIndex(), SetPixelIndex(), GetPixelBlack(), and SetPixelBlack().
As a consequence of using an array structure for variable pixel channels, auto-vectorization compilers have additional opportunities to speed up pixel loops.
pixel[1]) or use convenience accessors to get or set pixel channels:
GetPixela() SetPixela()
GetPixelAlpha() SetPixelAlpha()
GetPixelb() SetPixelb()
GetPixelBlack() SetPixelBlack()
GetPixelBlue() SetPixelBlue()
GetPixelCb() SetPixelCb()
GetPixelCr() SetPixelCr()
GetPixelCyan() SetPixelCyan()
GetPixelGray() SetPixelGray()
GetPixelGreen() SetPixelGreen()
GetPixelIndex() SetPixelIndex()
GetPixelL() SetPixelL()
GetPixelMagenta() SetPixelMagenta()
GetPixelReadMask() SetPixelReadMask()
GetPixelWriteMask() SetPixelWriteMask()
GetPixelMetacontentExtent() SetPixelMetacontentExtent()
GetPixelOpacity() SetPixelOpacity()
GetPixelRed() SetPixelRed()
GetPixelYellow() SetPixelYellow()
GetPixelY() SetPixelY()
You can find these accessors defined in the header file, MagickCore/pixel-accessor.h
GetPixelAlphaTraits() SetPixelAlphaTraits()
GetPixelBlackTraits() SetPixelBlackTraits()
GetPixelBlueTraits() SetPixelBlueTraits()
GetPixelCbTraits() SetPixelCbTraits()
GetPixelChannelTraits() SetPixelChannelTraits()
GetPixelCrTraits() SetPixelCrTraits()
GetPixelGrayTraits() SetPixelGrayTraits()
GetPixelGreenTraits() SetPixelGreenTraits()
GetPixelIndexTraits() SetPixelIndexTraits()
GetPixelMagentaTraits() SetPixelMagentaTraits()
GetPixelRedTraits() SetPixelRedTraits()
GetPixelYellowTraits() SetPixelYellowTraits()
GetPixelYTraits() SetPixelYTraits()
For convenience you can set the active trait for a set of pixel channels with a channel mask and this method:
SetImageChannelMask()
Previously MagickCore methods had channel analogs, for example, NegateImage() and NegateImageChannels(). The channel analog methods are no longer necessary because the pixel channel traits specify whether to act on a particular pixel channel or whether to blend with the alpha mask. For example, instead of
NegateImageChannel(image,channel);
we use:
channel_mask=SetImageChannelMask(image,channel);
NegateImage(image,exception);
(void) SetImageChannelMask(image,channel_mask);
SetImageMetacontentExtent()
GetImageMetacontentExtent()
GetVirtualMetacontent()
GetAuthenticMetacontent()
GetCacheViewAuthenticMetacontent()
GetCacheViewVirtualMetacontent()
QuantumRange means that the pixel is opaque because the geometry completely overlapped the pixel. As a consequence, in version 7, the PixelInfo structure member alpha has replaced the previous opacity member. Another consequence is the alpha part of an sRGB value in hexadecimal notation is now reversed (e.g. #0000 is fully transparent).
Rec601Luma and Rec709Luma colorspaces are no longer supported. Instead, specify the gray colorspace and choose from these intensity options:
Rec601Luma
Rec601Luminance
Rec709Luma
Rec709Luminance
For example,
magick myImage.png -intensity Rec709Luminance -colorspace gray myImage.jpg
-read-mask and -write-mask options. This polarity matches the masks in version 6 of ImageMagick for ease of porting your workflow. For convenience, we continue to support the -mask option in version 7 to match the behavior of version 6.
In this example, we compute the distortion of a masked reconstructed image:
compare -metric rmse -read-mask hat_mask.png hat.png wizard.png difference.png
Here we protect certain pixels from change:
magick rose: -write-mask rose_bg_mask.png -modulate 110,100,33.3 +mask rose_blue.png
A mask associated with an image persists until it is modified or removed. This may produce unexpected results for complex command-lines. Here we only want to clip when applying the alpha option, not the resize:
convert -density 300 -colorspace srgb image.eps -alpha transparent -clip -alpha opaque +clip -resize 1000x1000 -strip image.png
ExceptionInfo argument to those methods that lacked it in version 6, e.g. NegateImage(image,MagickTrue,exception)
●All method channel analogs have been removed (e.g. BlurImageChannel()), they are no longer necessary, use pixel traits instead.
●Public and private API calls are now declared with the GCC visibility attribute. The MagickCore and MagickWand dynamic libraries now only export public struct and function declarations.
●The InterpolatePixelMethod enum is now PixelInterpolateMethod.
●The IntegerPixel storage type is removed (use LongPixel instead) and LongLongPixel is added
●Image signatures have changed to account for variable pixel channels.
●All color packet structures, PixelPacket, LongPacket, and DoublePacket, are consolidated to a single color structure, PixelInfo.
●The ChannelMoments structure member Iis now invariant. Iconflicts with the complex.h header.
●We added a length parameter to FormatMagickSize() to permit variable length buffers.
image.negateChannel(Magick::ChannelType(Magick::CompositeChannels ^ Magick::AlphaChannel));
magick/ and wand/. ImageMagick 7 instead uses MagickCore/ and MagickWand/ respectively. For example,
#include <MagickCore/MagickCore.h>
#include <MagickWand/MagickWand.h>
Magick-config and Wand-config configuration utilities. Instead use:
MagickCore-config
MagickWand-config
The FilterImage() method has been removed. Use ConvolveImage() instead.
In addition, all deprecated MagickCore and MagickWand methods are no longer available in version 7.
The Bessel filter was removed as it is an alias for Jinc. Use -filter Jinc instead.
(' and ')' ) on to a stack now has
a completely separate image settings stack. That is parenthesis 'push/pull'
image lists, and curly braces (EG: '{' and '}' ) will
'push/pull' image settings.
Of course due to the previously reported changes to the underlying channel
handling will result be many side effects to almost all options. Here are some
specific
Most algorithms update the red, green, blue, black (for CMYK), and alpha
channels. Most operators will blend alpha the other color channels, but other
operators (and situations) may require this blending to be disabled, and is
currently done by removing alpha from the active channels via
-channel option. (e.g. magick castle.gif -channel RGB
-negate castle.png).
Reading gray-scale images generate an image with only one channel. If
that image is to then accept color the -colorspace setting needs to
be applied to expand the one channel into separate RGB (or other) channels.
Previously, command-line arguments were limited to 4096 characters, with ImageMagick version 7 the limit has increased to 131072 characters.
magick" command is the new primary command of the Shell
API, replacing the old "magick" command. This allows you to
create a 'magick script' of the form "#!/path/to/command/magick
-script", or pipe options into a command "magick -script
-, as a background process.
magick-script
This the same as "magick", (only command name is different)
but which has an implicit "-script" option. This allows you to
use it in an "env" style script form. That is a magick script
starts with the 'she-bang' line of﹃#!/usr/bin/env
magick-script﹄allowing the script interpreter to be found anywhere
on the users command "PATH". This is required to get around
a "one argument she-bang bug" that is common on most UNIX systems
(including Linux, but not MacOSX).
animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage, stream
To reduce the footprint of the command-line utilities, these utilities are symbolic links to the magick utility. You can also invoke them from the magick utility, for example, use magick convert logo: logo.png to invoke the magick utility.
magick \( -page +10+20 first.png \) \( -page +100+200 second.png \) ...
By default, image operations such as convolution blends alpha with each channel. To convolve each channel independently, deactivate the alpha channel as follows:
magick ... -alpha discrete -blur 0x1 ...
To remove the alpha values from your image, use -alpha off. If you want to instead persist the alpha channel but not blend the alpha pixels for certain image processing operations, use -alpha deactivate instead.
Some options have changed in ImageMagick version 7. These include:
-channel
the default is to update the RGBA channels, previously, in IMv6, the default was RGB. If you get results that differ from IMv6, you may need to specify -channel RGB on your command line (e.g. -channel RGB -negate).
+combine
This option now requires an argument, the image colorspace (e.g. +combine sRGB).
-format
The %Z image property is no longer supported.
-gamma
Multiple gamma arguments (e.g. -gamma 1,2,3) are no longer supported, instead use -channel (e.g. -channel blue -gamma 2).
-region
This option sets a write mask for the region you define. In IMv6, a separate image was cloned instead, operated on, and the results were composited to the source image. In addition, the draw transformations are relative to the upper left corner of the image, previously in IMv6 they were relative to the region.
Use -define morphology:showKernel=1 to post the morphology or convolution kernel. Previously it was -define showKernel=1.
magick" command, or to use in "magick"
scripts.
{ ... }
Save (and restore) the current image settings (internally known as the
"image_info" structure). This is automatically done with parenthesis (EG:
'(' and ')') is "-regard-parenthesis" has
been set, just as in IMv6. Caution is advised to prevent un-balanced
braces errors.
--
End of options, to be used in IMv7 "mogrify" command to
explicitly separate the operations to be applied and the images that
are to be processed 'in-place'. (not yet implemented). However if
not provided, "-read" can still be used to differentiate
secondary image reads (for use in things like alpha composition) from
the 'in-place' image being processed. In other commands (such as "magick") it is equivalent to an explicit "-read" (see below) of the next option as an image (as it was in IMv6).
-alpha activate/deactivate
enables and disables the alpha channel, respectively, with persistence. This is like on/off in Imagemagick 6. In Imagemagick 7, -alpha off will remove the alpha channel permanently such that -alpha on will not re-enable it.
-alpha discrete
treat the alpha channel independently (do not blend).
-channel-fx expression
exchange, extract, or copy one or more image channels.
The expression consists of one or more channels, either mnemonic or numeric (e.g. red or 0, green or 1, etc.), separated by certain operation symbols as follows:
<=> exchange two channels (e.g. red<=>blue)
=> copy one channel to another channel (e.g. red=>green)
= assign a constant value to a channel (e.g. red=50%)
, write new image with channels in the specified order (e.g. red, green)
; add a new output image for the next set of channel operations (e.g. red; green; blue)
| move to the next input image for the source of channel data (e.g. | gray=>alpha)
For example, to create 3 grayscale images from the red, green, and blue channels of an image, use:
-channel-fx "red; green; blue"
A channel without an operation symbol implies separate (i.e, semicolon).
Here we take an sRGB image and a grayscale image and inject the grayscale image into the alpha channel:
magick wizard.png mask.pgm -channel-fx '| gray=>alpha' wizard-alpha.png
Use a similar command to define a read mask:
magick wizard.png mask.pgm -channel-fx '| gray=>read-mask' wizard-mask.png
Add -debug pixel prior to the -channel-fx option to track the channel morphology.
-exit
Stop processing at this point. No further options will be processed after
this option. Can be used in a script to force the "magick"
command to exit, without actually closing the pipeline that it is
processing options from. May also be used as a 'final' option on the "magick" command
line, instead of an implicit output image, to completely prevent any image
write. ASIDE: even the "NULL:" coder requires at least one
image, for it to 'not write'! This option does not require any images at
all.
-read {image}
Explicit read of an image, rather than an implicit read. This allows you
to read from filenames that start with an 'option' character, and which
otherwise could be mistaken as an option (unknown or otherwise). This will
eventually be used in "mogrify" to allow the reading of
secondary images, and allow the use of image list operations within that
command.
-read-mask
prevent updates to image pixels specified by the mask
-region
supported in ImageMagick 7.0.2-6 and above
-script {file}
In "magick", stop the processing of command line arguments as
image operations, and read all further options from the given file or
pipeline.
-write-mask
prevent pixels from being written.
-define convolve:bias=value instead.
-draw
The matte primitive is now alpha (e.g. -draw 'alpha 0,0 floodfill').
-negate
currently negates all channels, including alpha if present. As such you may need to use the -channel option to prevent alpha negation (e.g. -channel RGB -negate).
-preview
this option is now an image operator. The PREVIEW image format has been removed.
-draw "affine ...". (see transform)
-average
Replaced by -evaluate-sequence Mean.
-box
Replaced by -undercolor.
-deconstruct
Replaced by -layers CompareAny.
-gaussian
Replaced by -gaussian-blur.
-/+map
Replaced by -/+remap.
-/+mask
Replaced by -/+read-mask, -/+write-mask.
-/+matte
Replaced by -alpha Set/Off.
-transform
Replaced by -distort Affine "...".
-remap.
-maximum
Replaced by -evaluate-sequence Max.
-median
Replaced by -evaluate-sequence Median.
-minimum
Replaced by -evaluate-sequence Min.
-recolor
Replaced by -color-matrix.
-fill.
-passphrase
old option, unknown meaning
NegateImage(image,MagickTrue,exception);
●All method channel analogs have been removed (e.g. BlurImageChannel()), they are no longer necessary, use pixel traits instead.
●Public and private API calls are now declared with the GCC visibility attribute. The MagickCore and MagickWand dynamic libraries now only export public struct and function declarations.
●The InterpolatePixelMethod enum is now PixelInterpolateMethod.
●To account for variable pixel channels, images may now return a different signature.