% July 1992 %
% %
% %
-% Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
#include "magick/blob.h"
#include "magick/blob-private.h"
#include "magick/cache.h"
+#include "magick/colormap.h"
#include "magick/constitute.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
static ddjvu_message_t*
pump_data_until_message(LoadContext *lc,Image *image) /* ddjvu_context_t *context, type ddjvu_document_type_t */
{
- unsigned long blocksize = BLOCKSIZE;
+ size_t blocksize = BLOCKSIZE;
unsigned char data[BLOCKSIZE];
- unsigned long size;
+ size_t size;
ddjvu_message_t *message;
/* i might check for a condition! */
while (!(message = ddjvu_message_peek(lc->context))
- && (size = (unsigned long) ReadBlob(image,(size_t) blocksize,data)) == blocksize) {
+ && (size = (size_t) ReadBlob(image,(size_t) blocksize,data)) == blocksize) {
ddjvu_stream_write(lc->document, lc->streamid, (char *) data, size);
}
if (message)
format,
stride, /* ?? */
(char*)q);
+ (void) ret;
ddjvu_format_release(format);
printf("%s: expanding BITONAL page/image\n", __FUNCTION__);
#endif
register IndexPacket *indexes;
- unsigned long bit, byte;
+ size_t bit, byte;
- for (y=0; y < (long) image->rows; y++)
+ for (y=0; y < (ssize_t) image->rows; y++)
{
PixelPacket * o = QueueAuthenticPixels(image,0,y,image->columns,1,&image->exception);
if (o == (PixelPacket *) NULL)
byte=0;
/* fixme: the non-aligned, last =<7 bits ! that's ok!!!*/
- for (x= 0; x < (long) image->columns; x++)
+ for (x= 0; x < (ssize_t) image->columns; x++)
{
- if (bit == 0) byte= (unsigned long) q[(y * stride) + (x / 8)];
+ if (bit == 0) byte= (size_t) q[(y * stride) + (x / 8)];
- indexes[x]=(IndexPacket) (((byte & 0x01) != 0) ? 0x00 : 0x01);
+ SetIndexPixelComponent(indexes+x,(IndexPacket) (((byte & 0x01) != 0) ? 0x00 : 0x01));
bit++;
if (bit == 8)
bit=0;
if (SyncAuthenticPixels(image,&image->exception) == MagickFalse)
break;
}
- SyncImage(image);
+ if (!image->ping)
+ SyncImage(image);
} else {
#if DEBUG
printf("%s: expanding PHOTO page/image\n", __FUNCTION__);
#endif
/* now transfer line-wise: */
- long i;
+ ssize_t i;
#if 0
/* old: */
char* r;
register PixelPacket *r;
#endif
- for (i = 0;i< (long) lc->image->rows; i++)
+ for (i = 0;i< (ssize_t) lc->image->rows; i++)
{
#if DEBUG
if (i % 1000 == 0) printf("%d\n",i);
#endif
r = QueueAuthenticPixels(lc->image,0,i,lc->image->columns,1,&image->exception);
+ if (r == (PixelPacket *) NULL)
+ break;
- ImportQuantumPixels(lc->image,
+ ImportQuantumPixels(lc->image,
(CacheView *) NULL,
quantum_info,
RGBQuantum, /*GrayQuantum*/
q+i*stride,&image->exception);
- SyncAuthenticPixels(lc->image,&image->exception);
+ SyncAuthenticPixels(lc->image,&image->exception);
}
}
q=(unsigned char *) RelinquishMagickMemory(q);
/* register PixelPacket *q; */
logging=LogMagickEvent(CoderEvent,GetMagickModule(), " enter ReadOneDJVUImage()");
+ (void) logging;
#if DEBUG
printf("==== Loading the page %d\n", pagenum);
image->y_resolution=image->x_resolution;
info.width*=image->x_resolution/info.dpi;
info.height*=image->y_resolution/info.dpi;
- info.dpi=(long) MagickMax(image->x_resolution,image->y_resolution);
+ info.dpi=(ssize_t) MagickMax(image->x_resolution,image->y_resolution);
}
type = ddjvu_page_get_type(lc->page);
/* mmc: set image->depth */
/* mmc: This from the type */
- image->columns=(unsigned long) info.width;
- image->rows=(unsigned long) info.height;
+ image->columns=(size_t) info.width;
+ image->rows=(size_t) info.height;
/* mmc: bitonal should be palettized, and compressed! */
if (type == DDJVU_PAGETYPE_BITONAL){
/* is this useful? */
}
#if DEBUG
- printf("now filling %ld x %ld\n", image->columns,image->rows);
+ printf("now filling %.20g x %.20g\n",(double) image->columns,(double)
+ image->rows);
#endif
#if DEBUG
- printf("END: finished filling %ld x %ld\n", image->columns,image->rows);
+ printf("END: finished filling %.20g x %.20g\n",(double) image->columns,
+ (double) image->rows);
#endif
- SyncImage(image);
+ if (!image->ping)
+ SyncImage(image);
quantum_info=DestroyQuantumInfo(quantum_info);
/* indexes=GetAuthenticIndexQueue(image); */
/* mmc: ??? Convert PNM pixels to runlength-encoded MIFF packets. */
MagickBooleanType
status;
- register long
+ register ssize_t
i;
/*
logging = LogMagickEvent(CoderEvent,GetMagickModule(),"enter ReadDJVUImage()");
+ (void) logging;
image = AcquireImage(image_info); /* mmc: ?? */
/*
* Allocate a LoadContext structure.
*/
- lc = (LoadContext *) AcquireAlignedMemory(1,sizeof(*lc));
+ lc = (LoadContext *) AcquireMagickMemory(sizeof(*lc));
if (lc == NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
ddjvu_cache_set_size(lc->context, 1); /* right? */
use_cache = 0;
/* document: here we don't have a filename, but, for the sake of generality, a FILE* ! */
- url="http://maruska.dyndns.org/fake.djvu";
+ url="http://www.imagemagick.org/fake.djvu";
lc->document = ddjvu_document_create(lc->context, url, use_cache); /* don't cache */
ddjvu_document_set_user_data(lc->document, lc);
i=0;
if (image_info->number_scenes != 0)
i=image_info->scene;
- for ( ; i < (long) lc->pages; i++)
+ for ( ; i < (ssize_t) lc->pages; i++)
{
image=ReadOneDJVUImage(lc,i,image_info,exception);
if (image == (Image *) NULL)
break;
+ image->scene=i;
AppendImageToList(&images,CloneImageList(image,exception));
if (image_info->number_scenes != 0)
if (image->scene >= (image_info->scene+image_info->number_scenes-1))
%
% The format of the RegisterDJVUImage method is:
%
-% unsigned long RegisterDJVUImage(void)
+% size_t RegisterDJVUImage(void)
%
*/
-ModuleExport unsigned long RegisterDJVUImage(void)
+ModuleExport size_t RegisterDJVUImage(void)
{
char
version[MaxTextExtent];