NAME
OpenGL::Image::Magick - copyright 2007 Graphcomp - ALL RIGHTS RESERVED
Author: Bob
"grafman"
Free - grafman
@graphcomp
.com
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
DESCRIPTION
This is a driver module
for
use
with
the OpenGL module.
While it may be called directly, it will more often be called
by the OpenGL::Image abstraction module.
Note: OpenGL::Image defaults to this module.
This is a subclass of the OpenGL::Image::Common module.
Requires the Image::Magick module; 6.3.5 or newer is recommended.
SYNOPSIS
##########
# Check for installed imaging engines
use
OpenGL::Image;
my
$img
= new OpenGL::Image(
engine
=>
'Magick'
,
source
=>
'MyImage.png'
);
##########
# Methods defined in the OpenGL::Image::Common module:
# Get native engine object
# Note: must not change image dimensions
my
$obj
=
$img
->Native;
$obj
->Quantize()
if
(
$obj
);
# Alternately (Assuming the native engine supports Blur):
$img
->Native->Blur();
# Test if image width is a power of 2
if
(
$img
->IsPowerOf2());
# Test if all listed values are a power of 2
if
(
$img
->IsPowerOf2(
@list
));
# Get largest power of 2 size within dimensions of image
my
$size
=
$img
->GetPowerOf2();
# Get all parameters as a hashref
my
$params
=
$img
->Get();
# Get one or more parameter values
my
@values
=
$img
->Get(
@params
);
# Get/Set Pixel values (normalized to 1.0)
my
(
$r
,
$g
,
$b
,
$a
) =
$img
->GetPixel(
$x
,
$y
);
# Sync cache after done modifying pixels
$img
->SetPixel(
$x
,
$y
,
$r
,
$g
,
$b
,
$a
);
$frame
->Sync();
##########
# Supported parameters:
# source - source image, if defined
# width - width of image in pixels
# height - height of image in pixels
# pixels - number of pixels
# components - number of pixel components
# size - bytes per component
# length - cache size in bytes
# endian - 1 if big endian; otherwise 0
# alpha - 1 if has alpha channel, -1 if has inverted alpha channel; 0 if none
# flipped - 1 bit set if cache scanlines are top to bottom; others reserved
# gl_internalformat - internal GL pixel format. eg: GL_RGBA8, GL_RGBA16
# gl_format - GL pixel format. eg: GL_RGBA, GL_BGRA
# gl_type - GL data type. eg: GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT
##########
# APIs defined in this module:
# Get engine version
my
$ver
= OpenGL::Image::THIS_MODULE::EngineVersion();
# Get engine description
my
$desc
= OpenGL::Image::ENGINE_MODULE::EngineDescription();
##########
# Methods defined in this module:
# Sync the image cache after modifying pixels.
# Used by some engines for paged caches; otherwise a NOP.
$img
->Sync();
# Return the image's cache as an OpenGL::Array object.
# Note: OGA may change after a cache update
my
$oga
=
$img
->GetArray();
# Return a C pointer to the image's cache.
# For use with OpenGL's "_c" APIs.
# Note: pointer may change after a cache update
$img
->Ptr();
# Save file - automatically does a Sync before write
$img
->Save(
'MyImage.png'
);
# Get image blob.
my
$blob
=
$img
->GetBlob();