summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-07-13 13:00:23 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-07-13 15:04:29 +0200
commitb862ec6ac16f3e02be7845bb0db7a77250cb587d (patch)
tree3b860a05f2f79a7889822ea6cdaabe3aa4ada1fc
parent14653f89a83982ef36346ebc15f14099fd5cf8f1 (diff)
merge UnoGraphicTransformer into UnoGraphic
it is never instantiated by itself. And this also means it now only has one OWeakObject base class Change-Id: I3074130539ab023fec5537e0e7794e1c2db7e6ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118835 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--solenv/clang-format/excludelist2
-rw-r--r--vcl/Library_vcl.mk1
-rw-r--r--vcl/inc/graphic/UnoGraphic.hxx19
-rw-r--r--vcl/inc/graphic/UnoGraphicTransformer.hxx58
-rw-r--r--vcl/source/graphic/UnoGraphic.cxx87
-rw-r--r--vcl/source/graphic/UnoGraphicTransformer.cxx126
6 files changed, 103 insertions, 190 deletions
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index de0adf28e56f..546422825079 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -14455,7 +14455,6 @@ vcl/inc/fontselect.hxx
vcl/inc/fontsubset.hxx
vcl/inc/graphic/UnoGraphic.hxx
vcl/inc/graphic/UnoGraphicDescriptor.hxx
-vcl/inc/graphic/UnoGraphicTransformer.hxx
vcl/inc/headless/svpbmp.hxx
vcl/inc/headless/svpdummies.hxx
vcl/inc/headless/svpframe.hxx
@@ -15015,7 +15014,6 @@ vcl/source/graphic/UnoGraphic.cxx
vcl/source/graphic/UnoGraphicDescriptor.cxx
vcl/source/graphic/UnoGraphicObject.cxx
vcl/source/graphic/UnoGraphicProvider.cxx
-vcl/source/graphic/UnoGraphicTransformer.cxx
vcl/source/graphic/grfattr.cxx
vcl/source/helper/canvasbitmap.cxx
vcl/source/helper/canvastools.cxx
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index d3f1adcd9b37..17458a0ed679 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -315,7 +315,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
vcl/source/graphic/UnoGraphicDescriptor \
vcl/source/graphic/UnoGraphicObject \
vcl/source/graphic/UnoGraphicProvider \
- vcl/source/graphic/UnoGraphicTransformer \
vcl/source/graphic/VectorGraphicSearch \
vcl/source/graphic/VectorGraphicLoader \
vcl/source/bitmap/impvect \
diff --git a/vcl/inc/graphic/UnoGraphic.hxx b/vcl/inc/graphic/UnoGraphic.hxx
index ef4300cb5175..7ab50a0b903d 100644
--- a/vcl/inc/graphic/UnoGraphic.hxx
+++ b/vcl/inc/graphic/UnoGraphic.hxx
@@ -23,9 +23,9 @@
#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/awt/XBitmap.hpp>
+#include <com/sun/star/graphic/XGraphicTransformer.hpp>
#include <graphic/UnoGraphicDescriptor.hxx>
-#include <graphic/UnoGraphicTransformer.hxx>
#include <vcl/graph.hxx>
@@ -34,8 +34,8 @@ namespace unographic {
class Graphic final : public css::graphic::XGraphic,
public css::awt::XBitmap,
public css::lang::XUnoTunnel,
- public ::unographic::GraphicDescriptor,
- public ::unographic::GraphicTransformer
+ public css::graphic::XGraphicTransformer,
+ public ::unographic::GraphicDescriptor
{
public:
Graphic();
@@ -70,6 +70,19 @@ private:
// XUnoTunnel
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& rId ) override;
+ // XGraphicTransformer
+ virtual css::uno::Reference< css::graphic::XGraphic > SAL_CALL colorChange(
+ const css::uno::Reference< css::graphic::XGraphic >& rGraphic,
+ sal_Int32 nColorFrom, sal_Int8 nTolerance, sal_Int32 nColorTo, sal_Int8 nAlphaTo ) override;
+
+ virtual css::uno::Reference< css::graphic::XGraphic > SAL_CALL applyDuotone(
+ const css::uno::Reference< css::graphic::XGraphic >& rGraphic,
+ sal_Int32 nColorOne, sal_Int32 nColorTwo ) override;
+
+ virtual css::uno::Reference< css::graphic::XGraphic > SAL_CALL applyBrightnessContrast(
+ const css::uno::Reference< css::graphic::XGraphic >& rxGraphic,
+ sal_Int32 nBrightness, sal_Int32 nContrast, sal_Bool mso ) override;
+
::Graphic maGraphic;
};
diff --git a/vcl/inc/graphic/UnoGraphicTransformer.hxx b/vcl/inc/graphic/UnoGraphicTransformer.hxx
deleted file mode 100644
index 785efdcd11b9..000000000000
--- a/vcl/inc/graphic/UnoGraphicTransformer.hxx
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_VCL_SOURCE_GRAPHIC_TRANSFORMER_HXX
-#define INCLUDED_VCL_SOURCE_GRAPHIC_TRANSFORMER_HXX
-
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/graphic/XGraphicTransformer.hpp>
-
-namespace unographic {
-
-
-typedef ::cppu::WeakAggImplHelper1<
- css::graphic::XGraphicTransformer
- > GraphicTransformer_UnoImplHelper1;
-class GraphicTransformer : public GraphicTransformer_UnoImplHelper1
-{
- public:
-
- GraphicTransformer();
- virtual ~GraphicTransformer() override;
-
- // XGraphicTransformer
- virtual css::uno::Reference< css::graphic::XGraphic > SAL_CALL colorChange(
- const css::uno::Reference< css::graphic::XGraphic >& rGraphic,
- sal_Int32 nColorFrom, sal_Int8 nTolerance, sal_Int32 nColorTo, sal_Int8 nAlphaTo ) override;
-
- virtual css::uno::Reference< css::graphic::XGraphic > SAL_CALL applyDuotone(
- const css::uno::Reference< css::graphic::XGraphic >& rGraphic,
- sal_Int32 nColorOne, sal_Int32 nColorTwo ) override;
-
- virtual css::uno::Reference< css::graphic::XGraphic > SAL_CALL applyBrightnessContrast(
- const css::uno::Reference< css::graphic::XGraphic >& rxGraphic,
- sal_Int32 nBrightness, sal_Int32 nContrast, sal_Bool mso ) override;
-
-};
-
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/graphic/UnoGraphic.cxx b/vcl/source/graphic/UnoGraphic.cxx
index 54887c96361a..2e850ef1b5dc 100644
--- a/vcl/source/graphic/UnoGraphic.cxx
+++ b/vcl/source/graphic/UnoGraphic.cxx
@@ -24,6 +24,9 @@
#include <com/sun/star/graphic/GraphicType.hpp>
#include <com/sun/star/graphic/XGraphicTransformer.hpp>
#include <vcl/dibtools.hxx>
+#include <vcl/graph.hxx>
+#include <vcl/BitmapColor.hxx>
+#include <vcl/BitmapDuoToneFilter.hxx>
#include <comphelper/servicehelper.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <cppuhelper/queryinterface.hxx>
@@ -186,6 +189,90 @@ sal_Int64 SAL_CALL Graphic::getSomething( const uno::Sequence< sal_Int8 >& rId )
reinterpret_cast<sal_Int64>(&maGraphic) : 0 );
}
+
+// XGraphicTransformer
+uno::Reference< graphic::XGraphic > SAL_CALL Graphic::colorChange(
+ const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nColorFrom, sal_Int8 nTolerance, sal_Int32 nColorTo, sal_Int8 nAlphaTo )
+{
+ ::Graphic aGraphic(rxGraphic);
+ ::Graphic aReturnGraphic;
+
+ BitmapColor aBmpColorFrom(static_cast< sal_uInt8 >(nColorFrom), static_cast< sal_uInt8 >(nColorFrom >> 8), static_cast< sal_uInt8 >(nColorFrom >> 16));
+ BitmapColor aBmpColorTo( static_cast< sal_uInt8 >(nColorTo), static_cast< sal_uInt8 >(nColorTo >> 8), static_cast< sal_uInt8 >(nColorTo >> 16));
+
+ Color aColorFrom(aBmpColorFrom);
+ Color aColorTo(aBmpColorTo);
+
+ const sal_uInt8 cIndexFrom = aBmpColorFrom.GetIndex();
+
+ //TODO This code convert GdiMetafile(vector graphic) to Bitmap, which cause to information lost
+ if (aGraphic.GetType() == GraphicType::Bitmap ||
+ aGraphic.GetType() == GraphicType::GdiMetafile)
+ {
+ BitmapEx aBitmapEx(aGraphic.GetBitmapEx());
+
+ if (aBitmapEx.IsAlpha())
+ {
+ aBitmapEx.setAlphaFrom( cIndexFrom, 0xff - nAlphaTo );
+ aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
+ aReturnGraphic = ::Graphic(aBitmapEx);
+ }
+ else
+ {
+ if ((nAlphaTo == 0) || (nAlphaTo == sal::static_int_cast< sal_Int8 >(0xff)))
+ {
+ Bitmap aBitmap(aBitmapEx.GetBitmap());
+ Bitmap aMask(aBitmap.CreateMask(aColorFrom, nTolerance));
+ aBitmap.Replace(aColorFrom, aColorTo, nTolerance);
+ aReturnGraphic = ::Graphic(BitmapEx(aBitmap, aMask));
+ }
+ else
+ {
+ aBitmapEx.setAlphaFrom(cIndexFrom, nAlphaTo);
+ aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
+ aReturnGraphic = ::Graphic(aBitmapEx);
+ }
+ }
+ }
+
+ aReturnGraphic.setOriginURL(aGraphic.getOriginURL());
+ return aReturnGraphic.GetXGraphic();
+}
+
+uno::Reference< graphic::XGraphic > SAL_CALL Graphic::applyDuotone(
+ const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nColorOne, sal_Int32 nColorTwo )
+{
+ ::Graphic aGraphic(rxGraphic);
+ ::Graphic aReturnGraphic;
+
+ BitmapEx aBitmapEx( aGraphic.GetBitmapEx() );
+ AlphaMask aMask( aBitmapEx.GetAlpha() );
+
+ BitmapEx aTmpBmpEx(aBitmapEx.GetBitmap());
+ BitmapFilter::Filter(aTmpBmpEx,
+ BitmapDuoToneFilter(
+ Color(ColorTransparency, nColorOne),
+ Color(ColorTransparency, nColorTwo)));
+
+ aReturnGraphic = ::Graphic( BitmapEx( aTmpBmpEx.GetBitmap(), aMask ) );
+ aReturnGraphic.setOriginURL(aGraphic.getOriginURL());
+ return aReturnGraphic.GetXGraphic();
+}
+
+uno::Reference< graphic::XGraphic > SAL_CALL Graphic::applyBrightnessContrast(
+ const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nBrightness, sal_Int32 nContrast, sal_Bool mso )
+{
+ ::Graphic aGraphic(rxGraphic);
+ ::Graphic aReturnGraphic;
+
+ BitmapEx aBitmapEx(aGraphic.GetBitmapEx());
+ aBitmapEx.Adjust(nBrightness, nContrast, 0, 0, 0, 0, false, mso);
+ aReturnGraphic = ::Graphic(aBitmapEx);
+ aReturnGraphic.setOriginURL(aGraphic.getOriginURL());
+ return aReturnGraphic.GetXGraphic();
+}
+
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/graphic/UnoGraphicTransformer.cxx b/vcl/source/graphic/UnoGraphicTransformer.cxx
deleted file mode 100644
index 9be6c2dbf4f6..000000000000
--- a/vcl/source/graphic/UnoGraphicTransformer.cxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <graphic/UnoGraphicTransformer.hxx>
-
-#include <vcl/graph.hxx>
-#include <vcl/BitmapColor.hxx>
-#include <vcl/BitmapDuoToneFilter.hxx>
-
-using namespace com::sun::star;
-
-namespace unographic {
-
-
-GraphicTransformer::GraphicTransformer()
-{
-}
-
-
-GraphicTransformer::~GraphicTransformer()
-{
-}
-
-
-// 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 )
-{
- ::Graphic aGraphic(rxGraphic);
- ::Graphic aReturnGraphic;
-
- BitmapColor aBmpColorFrom(static_cast< sal_uInt8 >(nColorFrom), static_cast< sal_uInt8 >(nColorFrom >> 8), static_cast< sal_uInt8 >(nColorFrom >> 16));
- BitmapColor aBmpColorTo( static_cast< sal_uInt8 >(nColorTo), static_cast< sal_uInt8 >(nColorTo >> 8), static_cast< sal_uInt8 >(nColorTo >> 16));
-
- Color aColorFrom(aBmpColorFrom);
- Color aColorTo(aBmpColorTo);
-
- const sal_uInt8 cIndexFrom = aBmpColorFrom.GetIndex();
-
- //TODO This code convert GdiMetafile(vector graphic) to Bitmap, which cause to information lost
- if (aGraphic.GetType() == GraphicType::Bitmap ||
- aGraphic.GetType() == GraphicType::GdiMetafile)
- {
- BitmapEx aBitmapEx(aGraphic.GetBitmapEx());
-
- if (aBitmapEx.IsAlpha())
- {
- aBitmapEx.setAlphaFrom( cIndexFrom, 0xff - nAlphaTo );
- aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
- aReturnGraphic = ::Graphic(aBitmapEx);
- }
- else
- {
- if ((nAlphaTo == 0) || (nAlphaTo == sal::static_int_cast< sal_Int8 >(0xff)))
- {
- Bitmap aBitmap(aBitmapEx.GetBitmap());
- Bitmap aMask(aBitmap.CreateMask(aColorFrom, nTolerance));
- aBitmap.Replace(aColorFrom, aColorTo, nTolerance);
- aReturnGraphic = ::Graphic(BitmapEx(aBitmap, aMask));
- }
- else
- {
- aBitmapEx.setAlphaFrom(cIndexFrom, nAlphaTo);
- aBitmapEx.Replace(aColorFrom, aColorTo, nTolerance);
- aReturnGraphic = ::Graphic(aBitmapEx);
- }
- }
- }
-
- aReturnGraphic.setOriginURL(aGraphic.getOriginURL());
- return aReturnGraphic.GetXGraphic();
-}
-
-uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::applyDuotone(
- const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nColorOne, sal_Int32 nColorTwo )
-{
- ::Graphic aGraphic(rxGraphic);
- ::Graphic aReturnGraphic;
-
- BitmapEx aBitmapEx( aGraphic.GetBitmapEx() );
- AlphaMask aMask( aBitmapEx.GetAlpha() );
-
- BitmapEx aTmpBmpEx(aBitmapEx.GetBitmap());
- BitmapFilter::Filter(aTmpBmpEx,
- BitmapDuoToneFilter(
- Color(ColorTransparency, nColorOne),
- Color(ColorTransparency, nColorTwo)));
-
- aReturnGraphic = ::Graphic( BitmapEx( aTmpBmpEx.GetBitmap(), aMask ) );
- aReturnGraphic.setOriginURL(aGraphic.getOriginURL());
- return aReturnGraphic.GetXGraphic();
-}
-
-uno::Reference< graphic::XGraphic > SAL_CALL GraphicTransformer::applyBrightnessContrast(
- const uno::Reference< graphic::XGraphic >& rxGraphic, sal_Int32 nBrightness, sal_Int32 nContrast, sal_Bool mso )
-{
- ::Graphic aGraphic(rxGraphic);
- ::Graphic aReturnGraphic;
-
- BitmapEx aBitmapEx(aGraphic.GetBitmapEx());
- aBitmapEx.Adjust(nBrightness, nContrast, 0, 0, 0, 0, false, mso);
- aReturnGraphic = ::Graphic(aBitmapEx);
- aReturnGraphic.setOriginURL(aGraphic.getOriginURL());
- return aReturnGraphic.GetXGraphic();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */