~ubuntu-branches/ubuntu/trusty/pdfmod/trusty

« back to all changes in this revision

Viewing changes to lib/PdfSharp/PdfSharp.Pdf.Internal/ColorSpaceHelper.cs

  • Committer: Bazaar Package Importer
  • Author(s): Chow Loong Jin
  • Date: 2010-06-18 03:44:46 UTC
  • Revision ID: james.westby@ubuntu.com-20100618034446-bogifrsscpayp361
Tags: upstream-0.8.3
ImportĀ upstreamĀ versionĀ 0.8.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#region PDFsharp - A .NET library for processing PDF
 
2
//
 
3
// Authors:
 
4
//   Stefan Lange (mailto:Stefan.Lange@pdfsharp.com)
 
5
//
 
6
// Copyright (c) 2005-2008 empira Software GmbH, Cologne (Germany)
 
7
//
 
8
// http://www.pdfsharp.com
 
9
// http://sourceforge.net/projects/pdfsharp
 
10
//
 
11
// Permission is hereby granted, free of charge, to any person obtaining a
 
12
// copy of this software and associated documentation files (the "Software"),
 
13
// to deal in the Software without restriction, including without limitation
 
14
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
 
15
// and/or sell copies of the Software, and to permit persons to whom the
 
16
// Software is furnished to do so, subject to the following conditions:
 
17
//
 
18
// The above copyright notice and this permission notice shall be included
 
19
// in all copies or substantial portions of the Software.
 
20
//
 
21
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
22
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
23
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 
24
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
25
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
26
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 
27
// DEALINGS IN THE SOFTWARE.
 
28
#endregion
 
29
 
 
30
using System;
 
31
using System.Diagnostics;
 
32
using System.Text;
 
33
using PdfSharp.Drawing;
 
34
 
 
35
namespace PdfSharp.Pdf.Internal
 
36
{
 
37
  /// <summary>
 
38
  /// Helper functions for RGB and CMYK colors.
 
39
  /// </summary>
 
40
  static class ColorSpaceHelper
 
41
  {
 
42
    /// <summary>
 
43
    /// Checks whether a color mode and a color match.
 
44
    /// </summary>
 
45
    public static XColor EnsureColorMode(PdfColorMode colorMode, XColor color)
 
46
    {
 
47
#if true
 
48
      if (colorMode == PdfColorMode.Rgb && color.ColorSpace != XColorSpace.Rgb)
 
49
        return XColor.FromArgb((int)(color.A * 255), color.R, color.G, color.B);
 
50
 
 
51
      if (colorMode == PdfColorMode.Cmyk && color.ColorSpace != XColorSpace.Cmyk)
 
52
        return XColor.FromCmyk(color.A, color.C, color.M, color.Y, color.K);
 
53
 
 
54
      return color;
 
55
#else
 
56
      if (colorMode == PdfColorMode.Rgb && color.ColorSpace != XColorSpace.Rgb)
 
57
        throw new InvalidOperationException(PSSR.InappropriateColorSpace(colorMode, color.ColorSpace));
 
58
 
 
59
      if (colorMode == PdfColorMode.Cmyk && color.ColorSpace != XColorSpace.Cmyk)
 
60
        throw new InvalidOperationException(PSSR.InappropriateColorSpace(colorMode, color.ColorSpace));
 
61
#endif
 
62
    }
 
63
 
 
64
    /// <summary>
 
65
    /// Checks whether the color mode of a document and a color match.
 
66
    /// </summary>
 
67
    public static XColor EnsureColorMode(PdfDocument document, XColor color)
 
68
    {
 
69
      if (document == null)
 
70
        throw new ArgumentNullException("document");
 
71
 
 
72
      return EnsureColorMode(document.Options.ColorMode, color);
 
73
    }
 
74
 
 
75
    /// <summary>
 
76
    /// Determines wheter two colors are equal refering to their CMYK color values.
 
77
    /// </summary>
 
78
    public static bool IsEqualCmyk(XColor x, XColor y)
 
79
    {
 
80
      if (x.ColorSpace != XColorSpace.Cmyk || y.ColorSpace != XColorSpace.Cmyk)
 
81
        return false;
 
82
      return x.C == y.C && x.M == y.M && x.Y == y.Y && x.K == y.K;
 
83
    }
 
84
  }
 
85
}
 
 
b'\\ No newline at end of file'