summaryrefslogtreecommitdiff
path: root/goodies/source/unographic/transformer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'goodies/source/unographic/transformer.cxx')
-rw-r--r--goodies/source/unographic/transformer.cxx162
1 files changed, 0 insertions, 162 deletions
diff --git a/goodies/source/unographic/transformer.cxx b/goodies/source/unographic/transformer.cxx
deleted file mode 100644
index 7e18c10cdd41..000000000000
--- a/goodies/source/unographic/transformer.cxx
+++ /dev/null
@@ -1,162 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: transformer.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_goodies.hxx"
-#include <rtl/uuid.h>
-#include <vos/mutex.hxx>
-#ifndef _SV_SVAPP_HXX_
-#include <vcl/svapp.hxx>
-#endif
-#ifndef _SV_IMAGE_HXX_
-#include <vcl/image.hxx>
-#endif
-#include <vcl/metaact.hxx>
-#include <tools/rcid.h>
-#include <tools/resid.hxx>
-#include <tools/resmgr.hxx>
-#include <unotools/ucbstreamhelper.hxx>
-#include <svl/solar.hrc>
-#include <vcl/salbtype.hxx>
-#include <vcl/virdev.hxx>
-#include <vcl/bmpacc.hxx>
-#include <com/sun/star/text/GraphicCrop.hpp>
-
-#include "graphic.hxx"
-#include "transformer.hxx"
-
-using namespace com::sun::star;
-
-namespace unographic {
-
-// ----------------------
-// - GraphicTransformer -
-// ----------------------
-
-GraphicTransformer::GraphicTransformer()
-{
-}
-
-// ------------------------------------------------------------------------------
-
-GraphicTransformer::~GraphicTransformer()
-{
-}
-
-// ------------------------------------------------------------------------------
-
-void setAlpha( Bitmap& rBitmap, AlphaMask& rAlpha, sal_Int32 nColorFrom, sal_Int8 nAlphaTo )
-{
- BitmapWriteAccess* pWriteAccess = rAlpha.AcquireWriteAccess();
- BitmapReadAccess* pReadAccess = rBitmap.AcquireReadAccess();
- BitmapColor aColorFrom( static_cast< sal_uInt8 >( nColorFrom >> 16 ),
- static_cast< sal_uInt8 >( nColorFrom >> 8 ),
- static_cast< sal_uInt8 >( nColorFrom ) );
- if ( pReadAccess && pWriteAccess )
- {
- for ( sal_Int32 nY = 0; nY < pReadAccess->Height(); nY++ )
- {
- for ( sal_Int32 nX = 0; nX < pReadAccess->Width(); nX++ )
- {
- BitmapColor aColor( pReadAccess->GetPixel( nY, nX ) );
- if ( aColor == aColorFrom )
- pWriteAccess->SetPixel( nY, nX, nAlphaTo );
- }
- }
- }
- rBitmap.ReleaseAccess( pReadAccess );
- rAlpha.ReleaseAccess( pWriteAccess );
-}
-
-// XGraphicTransformer
-uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::colorChange(
- const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nColorFrom, sal_Int8 nTolerance, sal_Int32 nColorTo, sal_Int8 nAlphaTo )
- throw ( lang::IllegalArgumentException, uno::RuntimeException)
-{
- const uno::Reference< uno::XInterface > xIFace( rxGraphic, uno::UNO_QUERY );
- ::Graphic aGraphic( *::unographic::Graphic::getImplementation( xIFace ) );
-
- BitmapColor aColorFrom( static_cast< sal_uInt8 >( nColorFrom ), static_cast< sal_uInt8 >( nColorFrom >> 8 ), static_cast< sal_uInt8 >( nColorFrom >> 16 ) );
- BitmapColor aColorTo( static_cast< sal_uInt8 >( nColorTo ), static_cast< sal_uInt8 >( nColorTo >> 8 ), static_cast< sal_uInt8 >( nColorTo >> 16 ) );
-
- if ( aGraphic.GetType() == GRAPHIC_BITMAP )
- {
- BitmapEx aBitmapEx( aGraphic.GetBitmapEx() );
- Bitmap aBitmap( aBitmapEx.GetBitmap() );
-
- if ( aBitmapEx.IsAlpha() )
- {
- AlphaMask aAlphaMask( aBitmapEx.GetAlpha() );
- setAlpha( aBitmap, aAlphaMask, aColorFrom, nAlphaTo );
- aBitmap.Replace( aColorFrom, aColorTo, nTolerance );
- aGraphic = ::Graphic( BitmapEx( aBitmap, aAlphaMask ) );
- }
- else if ( aBitmapEx.IsTransparent() )
- {
- if ( ( nAlphaTo == 0 ) || ( nAlphaTo == sal::static_int_cast<sal_Int8>(0xff) ) )
- {
- Bitmap aMask( aBitmapEx.GetMask() );
- Bitmap aMask2( aBitmap.CreateMask( aColorFrom, nTolerance ) );
- aMask.CombineSimple( aMask2, BMP_COMBINE_OR );
- aBitmap.Replace( aColorFrom, aColorTo, nTolerance );
- aGraphic = ::Graphic( BitmapEx( aBitmap, aMask ) );
- }
- else
- {
- AlphaMask aAlphaMask( aBitmapEx.GetMask() );
- setAlpha( aBitmap, aAlphaMask, aColorFrom, nAlphaTo );
- aBitmap.Replace( aColorFrom, aColorTo, nTolerance );
- aGraphic = ::Graphic( BitmapEx( aBitmap, aAlphaMask ) );
- }
- }
- else
- {
- if ( ( nAlphaTo == 0 ) || ( nAlphaTo == sal::static_int_cast<sal_Int8>(0xff) ) )
- {
- Bitmap aMask( aBitmap.CreateMask( aColorFrom, nTolerance ) );
- aBitmap.Replace( aColorFrom, aColorTo, nTolerance );
- aGraphic = ::Graphic( BitmapEx( aBitmap, aMask ) );
- }
- else
- {
- AlphaMask aAlphaMask( aBitmapEx.GetSizePixel() );
- setAlpha( aBitmap, aAlphaMask, aColorFrom, nAlphaTo );
- aBitmap.Replace( aColorFrom, aColorTo, nTolerance );
- aGraphic = ::Graphic( BitmapEx( aBitmap, aAlphaMask ) );
- }
- }
- }
- ::unographic::Graphic* pUnoGraphic = new ::unographic::Graphic();
- pUnoGraphic->init( aGraphic );
- uno::Reference< graphic::XGraphic > xRet( pUnoGraphic );
- return xRet;
-}
-
-}