51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
/////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Photoshop PSD FileType Plugin for Paint.NET
|
|
// http://psdplugin.codeplex.com/
|
|
//
|
|
// This software is provided under the MIT License:
|
|
// Copyright (c) 2006-2007 Frank Blumenberg
|
|
// Copyright (c) 2010-2014 Tao Yue
|
|
//
|
|
// See LICENSE.txt for complete licensing and attribution information.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace PhotoshopFile
|
|
{
|
|
internal class RleRowLengths
|
|
{
|
|
public int[] Values { get; private set; }
|
|
|
|
public long Total
|
|
{
|
|
get { return Values.Sum(x => (long)x); }
|
|
}
|
|
|
|
public int this[int i]
|
|
{
|
|
get { return Values[i]; }
|
|
set { Values[i] = value; }
|
|
}
|
|
|
|
public RleRowLengths(int rowCount)
|
|
{
|
|
Values = new int[rowCount];
|
|
}
|
|
|
|
public RleRowLengths(PsdBinaryReader reader, int rowCount, bool isLargeDocument)
|
|
: this(rowCount)
|
|
{
|
|
for (int i = 0; i < rowCount; i++)
|
|
{
|
|
Values[i] = isLargeDocument
|
|
? reader.ReadInt32()
|
|
: reader.ReadUInt16();
|
|
}
|
|
}
|
|
}
|
|
}
|