ImageSource

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(formatting, links, phrasing)
Line 1: Line 1:
{{Template:Func3Def|ImageSource(string ''file'' = "c:\%06d.ebmp", int ''start'' = 0, int ''end'' = 1000, float ''fps'' = 24, bool ''use_DevIL'' = false, bool ''info'' = false, string ''pixel_type'' = "RGB24")|ImageSourceAnim(string ''file'', float ''fps'' = 24, bool ''info'' = false, string ''pixel_type'' = "RGB32")|ImageReader(string ''file'' = "c:\%06d.ebmp", int ''start'' = 0, int ''end'' = 1000, float ''fps'' = 24, bool ''use_DevIL'' = false, bool ''info'' = false, string ''pixel_type'' = "RGB24")}}
+
__TOC__
  
ImageReader is present from v2.52, replacing WarpEnterprises' plugin. As of v2.55 ImageSource is equivalent, with some minor functionality changes. ImageSource is faster than ImageReader when importing one picture.
 
  
''file'': template for the image file(s), where frame number substitution can be specified using "[http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ sprintf syntax]". For example, the files written by ImageWriter's default parameters can be referenced with "c:\%06d.ebmp". As of v2.56 if the template points to a single file then that file is read once and subsequently returned for all requested frames.
+
== ImageReader and ImageSource ==
 +
{{Template:Func2Def
 +
|ImageReader(string ''file'', int ''start'', int ''end'', float ''fps'', bool ''use_DevIL'', bool ''info'', string ''pixel_type'')
 +
|ImageSource(string ''file'', int ''start'', int ''end'', float ''fps'', bool ''use_DevIL'', bool ''info'', string ''pixel_type'')}}
  
''start'' = 0, ''end'' = 1000: Specifies the starting and ending numbers used for filename generation. The file corresponding to ''start'' is always frame 0 in the clip, the file corresponding to ''end'' is frame (end-start). The resulting clip has (end-start+1) frames. 'end=0' does NOT mean 'no upper bound' as with ImageWriter. The first file in the sequence, i.e., corresponding to 'start', MUST exist in order for clip parameters to be computed. Any missing files in the sequence are replaced with a blank frame.
+
:{{Par2|file|string|"c:\%06d.ebmp"}}
 +
::Template for the image file(s), where frame number substitution can be specified using "[http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ sprintf syntax]". For example, the files written by [[ImageWriter|ImageWriter's]] default parameters can be referenced with "c:\%06d.ebmp". If {{FuncArg|file}} points to a single file (no sprintf pattern), then that file is read once and the image subsequently returned for all requested frames.
 +
 +
:{{Par2|start|int|0}}
 +
:{{Par2|end|int|1000}}
 +
::Specifies the starting and ending numbers used for filename generation. The file corresponding to {{FuncArg|start}} is always frame 0 in the clip, the file corresponding to {{FuncArg|end}} is frame (end-start). The resulting clip has ({{FuncArg|end}} - {{FuncArg|start}} + 1) frames. '{{FuncArg|end}}=0' does NOT mean 'no upper bound' as with [[ImageWriter]]. The first file in the sequence, i.e., corresponding to {{FuncArg|start}}, MUST exist in order for clip parameters to be computed. Any missing files in the sequence are replaced with a blank frame.
  
''fps'' = 24: frames per second of returned clip. An integer value prior to v2.55.
+
:{{Par2|fps|float|24.0}}
 +
::Frames Per Second of returned clip.  
  
''use_DevIL'' = false: When false, an attempt is made to parse (E)BMP files with the internal parser, upon failure (prior to v2.56) DevIL processing is invoked. When true, execution skips directly to DevIL processing. You should only need to use this if you have BMP files you don't want read by ImageReader's internal parser.
+
:{{Par2|use_DevIL|bool|false}}
 +
::When false, an attempt is made to parse (E)BMP files with the internal parser, upon failure (prior to v2.56) [http://openil.sourceforge.net/ DevIL] (Developer's Image Library) is invoked (see [[#Notes|Notes]] below). When true, execution skips the internal parser and goes directly to DevIL. You should only need to use this if you have BMP files you don't want read by '''ImageReader''''s internal parser.
  
''info'' = false: when true, the source filename and DevIL version is written to each video frame (added in v2.55).
+
:{{Par2|info|bool|false}}
 +
::When true, the source filename and [http://openil.sourceforge.net/ DevIL] version is written to each video frame.
  
''pixel_type'' = [[RGB24]]: Added in v2.56, and allow the output pixel format to be specified, Y8 (8-bit greyscale), RGB24 and [[RGB32]] are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.
+
:{{Par2|pixel_type|string|"RGB24"}}
 +
::Specifies the output pixel format: [[Y8]] (8-bit greyscale), [[RGB24]] and [[RGB32]] are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.
  
The resulting video clip is [[RGB]] (or Y8) if DevIL is used, otherwise it is whatever the EBMP was written as (all AviSynth formats are supported).
 
  
Supported formats are:
+
'''ImageReader''' is present from v2.52, replacing [http://www.avisynth.nl/users/warpenterprises/ WarpEnterprises'] plugin.
  
* (e)bmp, dds, ebmp, jpg/jpe/jpeg, pal, pcx, png, pbm/pgm/ppm, raw, sgi/bw/rgb/rgba, tga, tif/tiff.
+
'''ImageSource''' is equivalent, with some minor functionality changes. ImageSource is faster than ImageReader when importing a single picture.
* gif, exr, jp2, psd, hdr. [all of them require 1.7.8 DevIL.dll]
+
  
ImageSourceAnim lets you import animations (gif, ppm, tiff or psd). If there is a delay between the first and second image in the animation, the framerate is set accordingly. If this delay is zero, the framerate is set to 24 fps by default (and can be adjusted by setting the ''fps'' parameter). Note that ''pixel_type'' is set to RGB32 by default. If the images in the animation have unequal dimensions, then the dimension of the first image is taken and the remaining images are padded with black pixels below and or to the right.
+
===== ''Output Formats'' =====
 +
:If [http://openil.sourceforge.net/ DevIL] is used, the video output is RGB24, RGB32 or Y8; otherwise it is whatever format the EBMP sequence has.  
  
Since v2.61, DevIL 1.7.8 is included by default. For those who still use an older version, DevIL 1.7.8 can be downloaded [https://sourceforge.net/projects/openil/files/DevIL%20Win32/1.7.8/DevIL-EndUser-x86-1.7.8.zip here]. Just put the DevIL.dll in your system folder (it will overwrite the 1.6.6 DevIL.dll which comes with AviSynth). Be sure to use the non-unicode version, because the other one will result in crashes when loading pictures.
+
===== ''Input Formats'' =====
 +
:All AviSynth [[Color_spaces|color spaces]] are supported.  
  
DevIL.dll 1.7.8 requires the 2005 VC runtime libraries to be correctly installed: [http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en Visual C++ 2005 SP1 Redistributable Package (x86)].
+
:[[Wikipedia:BMP_file_format|BMP]] and EBMP ([[ImageWriter]] native format) are supported natively (see [[#Notes|Notes]] below); with DevIL 1.7.8, supported image formats are:
  
'''Examples:'''
+
:* [[Wikipedia:DirectDraw_Surface|dds]]; [[Wikipedia:JPEG|jpg/jpe/jpeg]]; [[Wikipedia:PCX|pcx]]; [[Wikipedia:Portable_Network_Graphics|png]]; [[Wikipedia:Netpbm_format|pbm/pgm/ppm]];  [[Wikipedia:TGA|tga]]; [[Wikipedia:TIFF|tif/tiff]];
 +
:* [[Wikipedia:GIF|gif]]; [[Wikipedia:OpenEXR|exr]]; [[Wikipedia:JPEG_2000|jp2]]; [[Wikipedia:Adobe_Photoshop#File_format|psd]]; [[Wikipedia:Hierarchical_Data_Format|hdr]]
 +
:* [[Wikipedia:Raw_image_format|raw]]; [[Wikipedia:Silicon_Graphics_Image|sgi/bw/rgb/rgba]];
 +
:* pal {{Clarify}}
 +
 
 +
 
 +
== ImageSourceAnim ==
 +
{{Template:FuncDef
 +
|ImageSourceAnim(string ''file'', float ''fps'', bool ''info'', string ''pixel_type'')}}
 +
 
 +
:{{Par2|file|string|}}
 +
::animation file to be loaded.
 +
 
 +
:{{Par2|fps|float|24.0}}
 +
::Frames Per Second of returned clip.
 +
 
 +
:{{Par2|info|bool|false}}
 +
::When true, the source filename and DevIL version is written to each video frame.
 +
 
 +
:{{Par2|pixel_type|string|"RGB24"}}
 +
::Specifies the output pixel format: [[Y8]] (8-bit greyscale), [[RGB24]] and [[RGB32]] are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.
 +
 
 +
 
 +
'''ImageSourceAnim''' lets you import animations ([[Wikipedia:GIF|gif]], [[Wikipedia:Netpbm_format|ppm]], [[Wikipedia:TIFF|tif/tiff]] or [[Wikipedia:Adobe_Photoshop#File_format|psd]]). If there is a delay between the first and second image in the animation, the framerate is set accordingly. If this delay is zero, the framerate is set to 24 fps by default (and can be adjusted by setting the {{FuncArg|fps}} parameter). Note that {{FuncArg|pixel_type}} is set to RGB32 by default. If the images in the animation have unequal dimensions, then the dimension of the first image is taken and the remaining images are padded with black pixels below and or to the right.
 +
 
 +
ImageSourceAnim requires DevIL 1.7.8, included in the Avisynth installation (see [[#Notes|Notes]] below).
 +
 
 +
 
 +
== Examples ==
  
 
  # Default parameters: read a 1000-frame native AviSynth EBMP sequence (at 24 fps)
 
  # Default parameters: read a 1000-frame native AviSynth EBMP sequence (at 24 fps)
Line 35: Line 74:
 
  # Read files "100.jpeg" through "199.jpeg" into an NTSC clip
 
  # Read files "100.jpeg" through "199.jpeg" into an NTSC clip
 
  ImageSource("%d.jpeg", 100, 199, 29.97)
 
  ImageSource("%d.jpeg", 100, 199, 29.97)
# Note: floating-point fps available in v2.56
 
  
 
  # Read files "00.bmp" through "50.bmp" bypassing AviSynth's internal BMP reader
 
  # Read files "00.bmp" through "50.bmp" bypassing AviSynth's internal BMP reader
Line 42: Line 80:
 
  # Read a single image, repeat 300 times
 
  # Read a single image, repeat 300 times
 
  ImageSource("static.png", end = 300, use_DevIL=true)
 
  ImageSource("static.png", end = 300, use_DevIL=true)
# Much, much faster in v2.56
 
  
 
  # Read a greyscale (8-bit) jpg:
 
  # Read a greyscale (8-bit) jpg:
Line 61: Line 98:
 
  ImageSourceAnim("F:\TestPics\8bit_animated.gif")
 
  ImageSourceAnim("F:\TestPics\8bit_animated.gif")
  
'''Notes:'''
+
 
 +
== Notes ==
 
* "EBMP" is an AviSynth extension of the standard Microsoft RIFF image format that allows you to save raw image data (all color formats are supported).  See [[ImageWriter]] for more details.
 
* "EBMP" is an AviSynth extension of the standard Microsoft RIFF image format that allows you to save raw image data (all color formats are supported).  See [[ImageWriter]] for more details.
 
* Greyscale BMPs are not read and written correctly by DevIL. They should be opened using '''use_DevIL=false'''.
 
* Greyscale BMPs are not read and written correctly by DevIL. They should be opened using '''use_DevIL=false'''.
* ImageSourceAnim requires DevIL 1.7.8.
+
* [http://openil.sourceforge.net/ DevIL] 1.7.8 is included in the Avisynth installation. If you need to download it, it is available [https://sourceforge.net/projects/openil/files/DevIL%20Win32/1.7.8/DevIL-EndUser-x86-1.7.8.zip here]. Just put the DevIL.dll in your system folder (it will overwrite any older version). Be sure to use the non-unicode version, because the other one will result in crashes when loading pictures.
* Loading DIB/BMP type files that use a pallette (such as 8 bit RGB, Monochrome, RLE8 and RLE4) requires DevIL 1.7.8. (Because the failure was usually catastrophic, from revision v2.56, internal BMP processing does not automatically fail over to DevIL processing. Forcing DevIL processing when using DevIL 1.6.6 for these file types is not recommended.)
+
*DevIL.dll 1.7.8 requires the 2005 VC phttps://support.microsoft.com/en-us/kb/2977003 runtime libraries] to be correctly installed: [http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en Visual C++ 2005 SP1 Redistributable Package (x86)].
 +
* Loading DIB/BMP type files that use a palette (such as 8 bit RGB, Monochrome, RLE8 and RLE4) requires DevIL 1.7.8. (Because the failure was usually catastrophic, internal BMP processing does not automatically fail over to DevIL processing. Forcing DevIL processing when using DevIL 1.6.6 for these file types is not recommended.)
 +
 
  
'''Changes:'''
+
== Changes ==
  
 
{| border="1"
 
{| border="1"

Revision as of 04:38, 7 January 2016

Contents


ImageReader and ImageSource

ImageReader(string file, int start, int end, float fps, bool use_DevIL, bool info, string pixel_type)
ImageSource(string file, int start, int end, float fps, bool use_DevIL, bool info, string pixel_type)

string  file = "c:\%06d.ebmp"
Template for the image file(s), where frame number substitution can be specified using "sprintf syntax". For example, the files written by ImageWriter's default parameters can be referenced with "c:\%06d.ebmp". If file points to a single file (no sprintf pattern), then that file is read once and the image subsequently returned for all requested frames.
int  start = 0
int  end = 1000
Specifies the starting and ending numbers used for filename generation. The file corresponding to start is always frame 0 in the clip, the file corresponding to end is frame (end-start). The resulting clip has (end - start + 1) frames. 'end=0' does NOT mean 'no upper bound' as with ImageWriter. The first file in the sequence, i.e., corresponding to start, MUST exist in order for clip parameters to be computed. Any missing files in the sequence are replaced with a blank frame.
float  fps = 24.0
Frames Per Second of returned clip.
bool  use_DevIL = false
When false, an attempt is made to parse (E)BMP files with the internal parser, upon failure (prior to v2.56) DevIL (Developer's Image Library) is invoked (see Notes below). When true, execution skips the internal parser and goes directly to DevIL. You should only need to use this if you have BMP files you don't want read by ImageReader's internal parser.
bool  info = false
When true, the source filename and DevIL version is written to each video frame.
string  pixel_type = "RGB24"
Specifies the output pixel format: Y8 (8-bit greyscale), RGB24 and RGB32 are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.


ImageReader is present from v2.52, replacing WarpEnterprises' plugin.

ImageSource is equivalent, with some minor functionality changes. ImageSource is faster than ImageReader when importing a single picture.

Output Formats
If DevIL is used, the video output is RGB24, RGB32 or Y8; otherwise it is whatever format the EBMP sequence has.
Input Formats
All AviSynth color spaces are supported.
BMP and EBMP (ImageWriter native format) are supported natively (see Notes below); with DevIL 1.7.8, supported image formats are:


ImageSourceAnim

ImageSourceAnim(string file, float fps, bool info, string pixel_type)

string  file =
animation file to be loaded.
float  fps = 24.0
Frames Per Second of returned clip.
bool  info = false
When true, the source filename and DevIL version is written to each video frame.
string  pixel_type = "RGB24"
Specifies the output pixel format: Y8 (8-bit greyscale), RGB24 and RGB32 are supported. The alpha channel is loaded only for RGB32 and only if DevIL supports it for the loaded image format.


ImageSourceAnim lets you import animations (gif, ppm, tif/tiff or psd). If there is a delay between the first and second image in the animation, the framerate is set accordingly. If this delay is zero, the framerate is set to 24 fps by default (and can be adjusted by setting the fps parameter). Note that pixel_type is set to RGB32 by default. If the images in the animation have unequal dimensions, then the dimension of the first image is taken and the remaining images are padded with black pixels below and or to the right.

ImageSourceAnim requires DevIL 1.7.8, included in the Avisynth installation (see Notes below).


Examples

# Default parameters: read a 1000-frame native AviSynth EBMP sequence (at 24 fps)
ImageSource()
# Read files "100.jpeg" through "199.jpeg" into an NTSC clip
ImageSource("%d.jpeg", 100, 199, 29.97)
# Read files "00.bmp" through "50.bmp" bypassing AviSynth's internal BMP reader
ImageSource("%02d.bmp", end = 50, use_DevIL = true)
# Read a single image, repeat 300 times
ImageSource("static.png", end = 300, use_DevIL=true)
# Read a greyscale (8-bit) jpg:
ImageSource("GoldPetals-8bit.jpg", use_DevIL=true)
# Read a greyscale (8-bit) BMP (using AviSynth's internal BMP reader):
ImageSource("GoldPetals-8bit.bmp")
# Read a YV24 BMP (created with ImageWriter):
ImageSource("GoldPetals-24bit.ebmp")
# Use a still-frame image with audio:
audio = DirectShowSource("Gina La Piana - Start Over.flv")
video = ImageSource("Gina La Piana.jpg", fps=25, start=1, end=ceil(25*AudioLengthF(audio)/AudioRate(audio)))
return AudioDub(video, audio)
# Read an animation:
ImageSourceAnim("F:\TestPics\8bit_animated.gif")


Notes

  • "EBMP" is an AviSynth extension of the standard Microsoft RIFF image format that allows you to save raw image data (all color formats are supported). See ImageWriter for more details.
  • Greyscale BMPs are not read and written correctly by DevIL. They should be opened using use_DevIL=false.
  • DevIL 1.7.8 is included in the Avisynth installation. If you need to download it, it is available here. Just put the DevIL.dll in your system folder (it will overwrite any older version). Be sure to use the non-unicode version, because the other one will result in crashes when loading pictures.
  • DevIL.dll 1.7.8 requires the 2005 VC phttps://support.microsoft.com/en-us/kb/2977003 runtime libraries] to be correctly installed: Visual C++ 2005 SP1 Redistributable Package (x86).
  • Loading DIB/BMP type files that use a palette (such as 8 bit RGB, Monochrome, RLE8 and RLE4) requires DevIL 1.7.8. (Because the failure was usually catastrophic, internal BMP processing does not automatically fail over to DevIL processing. Forcing DevIL processing when using DevIL 1.6.6 for these file types is not recommended.)


Changes

v2.60 Added ImageSourceAnim.
v2.60
  • Support user upgrade to 1.7.8 DevIL.dll (need to manage CRT dependancies).
  • Palette and compressed bmp images load correctly now (issue 894702) [requires 1.7.8 DevIL.dll]
  • Support for other formats like: gif, exr, jp2, psd, hdr [requires 1.7.8 DevIL.dll]
v2.60 Opening greyscale images (as Y8) added; EBMP supports all color formats.
v2.61 Updated DevIL library to v1.7.8.
Personal tools