Changeset 727

Show
Ignore:
Timestamp:
07/30/08 08:47:37 (5 months ago)
Author:
tom
Message:

Make the python bindings for image views actually only return data
from the view and not the whole image.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/bindings/python/mapnik_image_view.cpp

    r642 r727  
    4141PyObject* view_tostring1(image_view<ImageData32> const& view) 
    4242{ 
    43     int size = view.width() * view.height() * 4; 
    44     return ::PyString_FromStringAndSize((const char*)view.data().getBytes(),size); 
     43   std::ostringstream ss(std::ios::out|std::ios::binary); 
     44   for (unsigned i=0;i<view.height();i++) 
     45   { 
     46      ss.write(reinterpret_cast<const char*>(view.getRow(i)),  
     47               view.width() * sizeof(image_view<ImageData32>::pixel_type)); 
     48   } 
     49   return ::PyString_FromStringAndSize((const char*)ss.str().c_str(),ss.str().size()); 
    4550} 
    4651 
     
    4954{ 
    5055   std::ostringstream ss(std::ios::out|std::ios::binary); 
    51    if (format == "png") save_as_png(ss,view.data()); 
    52    else if (format == "png256") save_as_png256(ss,view.data()); 
    53    else if (format == "jpeg") save_as_jpeg(ss,85,view.data()); 
     56   if (format == "png") save_as_png(ss,view); 
     57   else if (format == "png256") save_as_png256(ss,view); 
     58   else if (format == "jpeg") save_as_jpeg(ss,85,view); 
    5459   else throw mapnik::ImageWriterException("unknown format: " + format); 
    5560   return ::PyString_FromStringAndSize((const char*)ss.str().c_str(),ss.str().size());