summaryrefslogtreecommitdiff
path: root/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx')
-rwxr-xr-x[-rw-r--r--]sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx83
1 files changed, 30 insertions, 53 deletions
diff --git a/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx b/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx
index 86fc72885414..e0f950442bb5 100644..100755
--- a/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx
+++ b/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx
@@ -47,37 +47,24 @@ class NoBitmapCompression::DummyReplacement
: public BitmapReplacement
{
public:
- ::boost::shared_ptr<BitmapEx> mpPreview;
+ Bitmap maPreview;
Size maOriginalSize;
- DummyReplacement (const ::boost::shared_ptr<BitmapEx>& rpPreview) : mpPreview(rpPreview)
- {
- }
-
- virtual ~DummyReplacement();
-
- virtual sal_Int32 GetMemorySize (void) const;
+ DummyReplacement (const Bitmap& rPreview) : maPreview(rPreview) { }
+ virtual ~DummyReplacement(void) {}
+ virtual sal_Int32 GetMemorySize (void) const { return maPreview.GetSizeBytes(); }
};
-NoBitmapCompression::DummyReplacement::~DummyReplacement()
-{
-}
-sal_Int32 NoBitmapCompression::DummyReplacement::GetMemorySize (void) const
-{
- return mpPreview->GetSizeBytes();
-}
-::boost::shared_ptr<BitmapReplacement> NoBitmapCompression::Compress (
- const ::boost::shared_ptr<BitmapEx>& rpBitmap) const
+::boost::shared_ptr<BitmapReplacement> NoBitmapCompression::Compress (const Bitmap& rBitmap) const
{
- return ::boost::shared_ptr<BitmapReplacement>(new DummyReplacement(rpBitmap));
+ return ::boost::shared_ptr<BitmapReplacement>(new DummyReplacement(rBitmap));
}
-::boost::shared_ptr<BitmapEx> NoBitmapCompression::Decompress (
- const BitmapReplacement& rBitmapData) const
+Bitmap NoBitmapCompression::Decompress (const BitmapReplacement& rBitmapData) const
{
- return dynamic_cast<const DummyReplacement&>(rBitmapData).mpPreview;
+ return dynamic_cast<const DummyReplacement&>(rBitmapData).maPreview;
}
@@ -93,8 +80,7 @@ bool NoBitmapCompression::IsLossless (void) const
//===== CompressionByDeletion =================================================
-::boost::shared_ptr<BitmapReplacement> CompressionByDeletion::Compress (
- const ::boost::shared_ptr<BitmapEx>& ) const
+::boost::shared_ptr<BitmapReplacement> CompressionByDeletion::Compress (const Bitmap& ) const
{
return ::boost::shared_ptr<BitmapReplacement>();
}
@@ -102,12 +88,11 @@ bool NoBitmapCompression::IsLossless (void) const
-::boost::shared_ptr<BitmapEx> CompressionByDeletion::Decompress (
- const BitmapReplacement& ) const
+Bitmap CompressionByDeletion::Decompress (const BitmapReplacement& ) const
{
// Return a NULL pointer. This will eventually lead to a request for
// the creation of a new one.
- return ::boost::shared_ptr<BitmapEx>();
+ return Bitmap();
}
@@ -128,11 +113,10 @@ bool CompressionByDeletion::IsLossless (void) const
class ResolutionReduction::ResolutionReducedReplacement : public BitmapReplacement
{
public:
- ::boost::shared_ptr<BitmapEx> mpPreview;
+ Bitmap maPreview;
Size maOriginalSize;
virtual ~ResolutionReducedReplacement();
-
virtual sal_Int32 GetMemorySize (void) const;
};
@@ -142,23 +126,20 @@ ResolutionReduction::ResolutionReducedReplacement::~ResolutionReducedReplacement
sal_Int32 ResolutionReduction::ResolutionReducedReplacement::GetMemorySize (void) const
{
- if (mpPreview.get() != NULL)
- return mpPreview->GetSizeBytes();
- else
- return 0;
+ return maPreview.GetSizeBytes();
}
::boost::shared_ptr<BitmapReplacement> ResolutionReduction::Compress (
- const ::boost::shared_ptr<BitmapEx>& rpBitmap) const
+ const Bitmap& rBitmap) const
{
ResolutionReducedReplacement* pResult = new ResolutionReducedReplacement();
- pResult->mpPreview.reset(new BitmapEx(*rpBitmap));
- Size aSize (rpBitmap->GetSizePixel());
+ pResult->maPreview = rBitmap;
+ Size aSize (rBitmap.GetSizePixel());
pResult->maOriginalSize = aSize;
if (aSize.Width()>0 && aSize.Width()<mnWidth)
{
int nHeight = aSize.Height() * mnWidth / aSize.Width() ;
- pResult->mpPreview->Scale(Size(mnWidth,nHeight));
+ pResult->maPreview.Scale(Size(mnWidth,nHeight));
}
return ::boost::shared_ptr<BitmapReplacement>(pResult);
@@ -167,22 +148,21 @@ sal_Int32 ResolutionReduction::ResolutionReducedReplacement::GetMemorySize (void
-::boost::shared_ptr<BitmapEx> ResolutionReduction::Decompress (
- const BitmapReplacement& rBitmapData) const
+Bitmap ResolutionReduction::Decompress (const BitmapReplacement& rBitmapData) const
{
- ::boost::shared_ptr<BitmapEx> pResult;
+ Bitmap aResult;
const ResolutionReducedReplacement* pData (
dynamic_cast<const ResolutionReducedReplacement*>(&rBitmapData));
- if (pData->mpPreview.get() != NULL)
+ if ( ! pData->maPreview.IsEmpty())
{
- pResult.reset(new BitmapEx(*pData->mpPreview));
+ aResult = pData->maPreview;
if (pData->maOriginalSize.Width() > mnWidth)
- pResult->Scale(pData->maOriginalSize);
+ aResult.Scale(pData->maOriginalSize);
}
- return pResult;
+ return aResult;
}
@@ -223,15 +203,14 @@ public:
-::boost::shared_ptr<BitmapReplacement> PngCompression::Compress (
- const ::boost::shared_ptr<BitmapEx>& rpBitmap) const
+::boost::shared_ptr<BitmapReplacement> PngCompression::Compress (const Bitmap& rBitmap) const
{
- ::vcl::PNGWriter aWriter (*rpBitmap);
+ ::vcl::PNGWriter aWriter (rBitmap);
SvMemoryStream aStream (32768, 32768);
aWriter.Write(aStream);
PngReplacement* pResult = new PngReplacement();
- pResult->maImageSize = rpBitmap->GetSizePixel();
+ pResult->maImageSize = rBitmap.GetSizePixel();
pResult->mnDataSize = aStream.Tell();
pResult->mpData = new char[pResult->mnDataSize];
memcpy(pResult->mpData, aStream.GetData(), pResult->mnDataSize);
@@ -242,21 +221,19 @@ public:
-::boost::shared_ptr<BitmapEx> PngCompression::Decompress (
+Bitmap PngCompression::Decompress (
const BitmapReplacement& rBitmapData) const
{
- BitmapEx* pResult = NULL;
+ Bitmap aResult;
const PngReplacement* pData (dynamic_cast<const PngReplacement*>(&rBitmapData));
if (pData != NULL)
{
SvMemoryStream aStream (pData->mpData, pData->mnDataSize, STREAM_READ);
::vcl::PNGReader aReader (aStream);
- pResult = new BitmapEx(aReader.Read());
+ aResult = aReader.Read().GetBitmap();
}
-// sal_Int32 nRatio ((100L * (ULONG)pResult->GetSizeBytes()) / (ULONG)pData->mnDataSize);
-
- return ::boost::shared_ptr<BitmapEx>(pResult);
+ return aResult;
}