PathResource
İçindekiler
[
Saklamak
]Inheritance: java.lang.Object
public class PathResource
Photoshop Yol Kaynağını temsil eder.
Yapıcılar
| Yapıcı | Açıklama |
|---|---|
| PathResource() |
Yöntemler
| Yöntem | Açıklama |
|---|---|
| getBlockId() | Blok tanımlayıcısını alır. |
| setBlockId(short value) | Blok tanımlayıcısını ayarlar. |
| getName() | Adı alır. |
| setName(String value) | Adı ayarlar. |
| getRecords() | Kayıtları alır. |
| setRecords(List | Kayıtları ayarlar. |
Example: The following example shows how to create Clipping Path in TIFF image.
Aşağıdaki örnek, TIFF görüntüsünde Clipping Path oluşturmanın nasıl yapılacağını gösterir. Bunu yapmak için PathResource sınıfının bir örneğini oluşturmanız gerekir. Aşağıdaki kod, TIFF görüntüsünde boş bir yol oluşturmanın yolunu gösterir.
TiffOptions options = new TiffOptions(TiffExpectedFormat.Default);
TiffFrame frame = new TiffFrame(options, 800, 600);
try (TiffImage image = new TiffImage(frame))
{
List<PathResource> list = new ArrayList<PathResource>();
PathResource pr = new PathResource();
pr.setBlockId(2000);
pr.setName("My Clipping Path");
pr.setRecords(new ArrayList<VectorPathRecord>());
image.getActiveFrame().setPathResources(list);
image.save("ImageWithEmptyPath.tiff");
}
Example: Transfer Clipping Paths during export from TIFF to PSD image.
try (Image image = Image.load("Sample.tif"))
{
image.save("SampleWithPaths.psd", new PsdOptions());
}
Example: Create Clipping Path manually.
static void main()
{
try (TiffImage image = (TiffImage)Image.load("Sample.tif"))
{
PathResource res = new PathResource();
res.setBlockId((short) 2000); // Block Id according to Photoshop specification
res.setName("My Clipping Path"); // Path name
res.setRecords(createRecords(0.2f, 0.2f, 0.8f, 0.2f, 0.8f, 0.8f, 0.2f, 0.8f)); // Create path records using coordinates
image.getActiveFrame().setPathResources(Collections.singletonList(res));
image.save("ImageWithPath.tif");
}
}
private static List<VectorPathRecord> createRecords(float ... coordinates)
{
List<VectorPathRecord> records = createBezierRecords(coordinates); // Create Bezier records using coordinates
LengthRecord lr = new LengthRecord(); // LengthRecord required by Photoshop specification
lr.setOpen(false); // Lets create closed path
lr.setRecordCount(records.size()); // Record count in the path
records.add(0, lr);
return records;
}
private static List<VectorPathRecord> createBezierRecords(float[] coordinates)
{
List<VectorPathRecord> l = new LinkedList<VectorPathRecord>();
for (int index = 0; index < coordinates.length - 1; index += 2)
{
PointF pt = new PointF(coordinates[index], coordinates[index + 1]);
BezierKnotRecord br = new BezierKnotRecord();
br.setPathPoints(new PointF[] {pt, pt, pt});
l.add(br);
}
return l;
}
Example: Create Graphics Path from Path Resources in TIFF image.
try (TiffImage image = (TiffImage)Image.load("Bottle.tif"))
{
// TIFF görüntüsünden PathResources kullanarak GraphicsPath oluşturun
GraphicsPath graphicsPath = PathResourceConverter.toGraphicsPath(
image.getActiveFrame().getPathResources().toArray(new PathResource[0]),
image.getActiveFrame().getSize());
Graphics graphics = new Graphics(image);
// Kırmızı bir çizgi çizin ve görüntüyü kaydedin
graphics.drawPath(new Pen(Color.getRed(), 10), graphicsPath);
image.save("BottleWithRedBorder.tif");
}
Example: Create Path Resources using Graphics Path.
static void main()
{
try (TiffImage image = (TiffImage)Image.load("Bottle.tif"))
{
// GraphicsPath için dikdörtgen Figure oluşturun
Figure figure = new Figure();
figure.addShape(createBezierShape(100f, 100f, 500f, 100f, 500f, 1000f, 100f, 1000f));
// Figure'ımızı kullanarak GraphicsPath oluşturun
GraphicsPath graphicsPath = new GraphicsPath();
graphicsPath.addFigure(figure);
// GraphicsPath kullanarak PathResources ayarlayın
PathResource[] pathResource = PathResourceConverter.fromGraphicsPath(graphicsPath, image.getSize());
image.getActiveFrame().setPathResources(Arrays.asList(pathResource));
// Görüntüyü kaydedin
image.save("BottleWithRectanglePath.tif");
}
}
private static BezierShape createBezierShape(float ... coordinates)
{
PointF[] bezierPoints = coordinatesToBezierPoints(coordinates);
return new BezierShape(bezierPoints, true);
}
private static PointF[] coordinatesToBezierPoints(float[] coordinates)
{
PointF[] bezierPoints = new PointF[3 * coordinates.length / 2];
int i = 0;
for (int coordinateIndex = 0; coordinateIndex < coordinates.length - 1; coordinateIndex += 2)
for (int index = 0; index < 3; index++)
{
bezierPoints[i++] = new PointF(coordinates[coordinateIndex], coordinates[coordinateIndex + 1]);
}
return bezierPoints;
}
PathResource()
public PathResource()
getBlockId()
public final short getBlockId()
Blok tanımlayıcısını alır.
Değer: Blok tanımlayıcısı.
Returns: short - blok tanımlayıcısı.
setBlockId(short value)
public final void setBlockId(short value)
Blok tanımlayıcısını ayarlar.
Değer: Blok tanımlayıcısı.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| değer | short | blok tanımlayıcısı. |
getName()
public final String getName()
Adı alır.
Değer: İsim.
Returns: java.lang.String - isim.
setName(String value)
public final void setName(String value)
Adı ayarlar.
Değer: İsim.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| değer | java.lang.String | isim. |
getRecords()
public final List<VectorPathRecord> getRecords()
Kayıtları alır.
Değer: Kayıtlar.
Returns: java.util.List<com.aspose.imaging.fileformats.core.vectorpaths.VectorPathRecord> - kayıtlar.
setRecords(List value)
public final void setRecords(List<VectorPathRecord> value)
Kayıtları ayarlar.
Değer: Kayıtlar.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| değer | java.util.List<com.aspose.imaging.fileformats.core.vectorpaths.VectorPathRecord> | kayıtlar. |