Vytváření, Otevírání a Ukládání Obrázků

Vytváření Souborů s Obrázky

Aspose.PSD pro .NET umožňuje vývojářům vytvářet vlastní obrázky. K vytvoření nových obrázků použijte statickou metodu Create, kterou nabízí třída Image. Vše, co musíte udělat, je poskytnout vhodný objekt jedné z tříd z prostoru názvů ImageOptions pro požadovaný výstupní formát obrázku. Pro vytvoření obrázkového souboru nejprve vytvořte instanci jedné z tříd z prostoru názvů ImageOptions. Tyto třídy určují formát výstupního obrázku. Níže jsou uvedeny některé třídy z prostoru názvů ImageOptions (poznamenejte, že jsou v současné době podporovány pouze rodiny formátů souborů PSD pro vytváření):

PsdOptions nastavuje možnosti pro vytváření souboru PSD. Obrázkové soubory lze vytvořit nastavením výstupní cesty nebo nastavením proudu.

Vytváření Nastavením Cesty

Vytvořte PsdOptions z prostoru názvů ImageOptions a nastavte různé vlastnosti. Nejdůležitější vlastností k nastavení je vlastnost Source. Tato vlastnost určuje, kde jsou uložena data obrázku (v souboru nebo v proudu). V příkladu níže je zdrojem soubor. Po nastavení vlastností předejte objekt jedné z statických metod Create spolu s parametrem šířky a výšky. Šířka a výška jsou definovány v pixelech.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Creates an instance of PsdOptions and set its various properties
PsdOptions psdOptions = new PsdOptions();
psdOptions.CompressionMethod = CompressionMethod.RLE;
// Define the source property for the instance of PsdOptions. Second boolean parameter determines if the file is temporal or not
psdOptions.Source = new FileCreateSource(desName, false);
// Creates an instance of Image and call Create method by passing the PsdOptions object
using (Image image = Image.Create(psdOptions, 500, 500))
{
image.Save();
}

Vytváření Pomocí Proudu

Postup pro vytvoření obrázku pomocí proudu je stejný jako u využití cesty. Jediný rozdíl spočívá v tom, že musíte vytvořit instanci třídy StreamSource tím, že Stream objekt předáte jeho konstruktoru a přiřadíte ho vlastnosti Source.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string desName = dataDir + "CreatingImageUsingStream_out.bmp";
// Creates an instance of BmpOptions and set its various properties
BmpOptions ImageOptions = new BmpOptions();
ImageOptions.BitsPerPixel = 24;
// Create an instance of System.IO.Stream
Stream stream = new FileStream(dataDir + "sample_out.bmp", FileMode.Create);
// Define the source property for the instance of BmpOptions Second boolean parameter determines if the Stream is disposed once get out of scope
ImageOptions.Source = new StreamSource(stream, true);
// Creates an instance of Image and call Create method by passing the BmpOptions object
using (Image image = Image.Create(ImageOptions, 500, 500))
{
// Do some image processing
image.Save(desName);
}

Otevírání Obrázkových Souborů

Vývojáři mohou pomocí API Aspose.PSD pro .NET otevřít existující obrázkové soubory PSD pro různé účely, například přidávání efektů na obrázek nebo konverzi existujícího souboru do jiného formátu. Bez ohledu na účel, Aspose.PSD poskytuje dvě standardní způsoby otevírání existujících souborů: ze souboru nebo z proudu.

Otevírání z Disku

Otevřete obrázkový soubor předáním cesty a názvu souboru jako parametru statické metody Load, kterou nabízí třída Image.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(sourceFile))
{
PsdImage psdImage = (PsdImage)image;
psdImage.Save(destName, new PngOptions());
}

Otevírání pomocí Proudu

Někdy je obrázek, který potřebujeme otevřít, uložen jako proud. V takových případech použijte přetíženou verzi metody Load. Tato metoda přijímá objekt Stream jako argument k otevření obrázku.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
FileStream fStream = new FileStream(sourceFile, FileMode.Open);
fStream.Position = 0;
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(fStream))
{
PsdImage psdImage = (PsdImage)image;
MemoryStream stream = new MemoryStream();
psdImage.Save(stream, new PngOptions());
}

Načtení Obrázku jako Vrstvy

Tento článek demonstruje použití Aspose.PSD k načtení obrázku jako vrstvy. API Aspose.PSD nabízí efektivní a snadno použitelné metody k dosažení tohoto cíle. Aspose.PSD vystavil metodu AddLayer třídy PsdImage k přidání obrázku do souboru PSD jako vrstvy.

Kroky k načtení obrázku do PSD jako vrstvy jsou velmi jednoduché:

  • Vytvořte instanci obrázku pomocí třídy PsdImage s určenou šířkou a výškou.
  • Načtěte soubor PSD jako obrázek pomocí tovární metody Load vystavené třídou Image.
  • Vytvořte instanci třídy Layer a přiřaďte do ní vrstvu obrázku PSD.
  • Přidejte vytvořenou vrstvu pomocí metody AddLayer vystavené třídou PsdImage
  • Uložte výsledky.
// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string filePath = dataDir + "PsdExample.psd";
string outputFilePath = dataDir + "PsdResult.psd";
using (var image = new PsdImage(200, 200))
{
using (var im = Image.Load(filePath))
{
Layer layer = null;
try
{
layer = new Layer((RasterImage)im);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw;
}
}
image.Save(outputFilePath);
}

Načtení Obrázku jako Vrstvy z Proudu

Tento článek demonstruje použití Aspose.PSD k načtení obrázku jako vrstvy z proudu. Pro načtení obrázku z proudu jednoduše předejte objekt proudu, který obsahuje obrázek, konstruktoru třídy Layer. Přidejte vytvořenou vrstvu pomocí metody AddLayer vystavené třídou PsdImage a uložte výsledky.

Zde je ukázkový kód.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outputFilePath = dataDir + "PsdResult.psd";
var filesList = new string[]
{
"PsdExample.psd",
"BmpExample.bmp",
"GifExample.gif",
"Jpeg2000Example.jpf",
"JpegExample.jpg",
"PngExample.png",
"TiffExample.tif",
};
using (var image = new PsdImage(200, 200))
{
foreach (var fileName in filesList)
{
string filePath = dataDir + fileName;
using (var stream = new FileStream(filePath, FileMode.Open))
{
Layer layer = null;
try
{
layer = new Layer(stream);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw e;
}
}
}
image.Save(outputFilePath);
}

Ukládání Obrázkových Souborů

Aspose.PSD vám umožňuje vytvářet obrázkové soubory od základů. Také poskytuje možnosti upravovat existující obrázkové soubory. Jakmile je obrázek vytvořen nebo upraven, soubor je obvykle uložen na disk. Aspose.PSD vám poskytuje metody pro ukládání obrázků na disk tím, že specifikujete cestu nebo použitím objektu Stream.

Ukládání na Disk

Třída Image reprezentuje objekt obrázku, takže tato třída poskytuje veškeré nástroje potřebné k vytvoření, načtení a uložení obrázkového souboru. Pro uložení obrázků použijte metodu Save třídy Image. Jedna přetížená verze metody Save přijímá umístění souboru jako řetězec.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(sourceFile))
{
PsdImage psdImage = (PsdImage)image;
psdImage.Save(destName, new PngOptions());
}

Ukládání do Proudu

Další přetížená verze metody Save přijímá objekt Stream jako argument a uloží obrázkový soubor do proudu.

Pokud je obrázek vytvářen pomocí jakéhokoli z CreateOptions v konstruktoru Image, obrázek je automaticky uložen na cestě nebo do proudu dodaného během inicializace třídy Image voláním metody Save, která nepřijímá žádný parametr.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(sourceFile))
{
PsdImage psdImage = (PsdImage)image;
MemoryStream stream = new MemoryStream();
psdImage.Save(stream, new PngOptions());
}

Nastavení Pro Nahrazování Chybějících Písem

Vývojáři mohou využít API Aspose.PSD pro .NET k načtení existujících obrázkových souborů PSD pro různé účely, například k nastavení výchozího názvu písma při ukládání dokumentů PSD jako rastrový obrázek (do formátů PNG, JPG a BMP). Toto výchozí písmo by mělo být použito jako náhrada všech chybějících písem (písem, která nejsou nalezena v aktuálním operačním systému). Jakmile je obrázek upraven, soubor bude uložen na disk.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFileName = "sample_konstanting.psd";
string[] outputs = new string[]
{
"replacedfont0.tiff",
"replacedfont1.png",
"replacedfont2.jpg"
};
using (PsdImage image = (PsdImage)Image.Load(sourceFileName, new PsdLoadOptions()))
{
// This way you can use different fonts for different outputs
image.Save(outputs[0], new TiffOptions(TiffExpectedFormat.TiffJpegRgb) { DefaultReplacementFont = "Arial" });
image.Save(outputs[1], new PngOptions { DefaultReplacementFont = "Verdana" });
image.Save(outputs[2], new JpegOptions { DefaultReplacementFont = "Times New Roman" });
}