表示するサンプルコードの言語を指定できます。
画像の機能
空の画像を生成したり、読み込んだ画像を編集したりできます。
空の画像の編集
C++
#include <Altseed.h>
/**
@brief 空の画像を編集するサンプル
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(u"Texture_Basic", 640, 480, asd::EngineOption());
// 空の画像を生成する。
std::shared_ptr<asd::Texture2D> texture =
asd::Engine::GetGraphics()->CreateEmptyTexture2D(256, 256, asd::TextureFormat::R8G8B8A8_UNORM_SRGB);
// 画像を編集する。
asd::TextureLockInfomation lockInfo;
// ロックして編集可能な状態にする。
if (texture->Lock(&lockInfo))
{
for (int32_t y = 0; y < lockInfo.GetSize().Y; y++)
{
for (int32_t x = 0; x < lockInfo.GetSize().X; x++)
{
auto pixel = &((uint8_t*) lockInfo.GetPixels())[(x + y * lockInfo.GetSize().X) * lockInfo.GetPitch()];
pixel[0] = x;
pixel[1] = y;
pixel[2] = 0;
pixel[3] = 255;
}
}
// Unlockして編集結果を適用する。
texture->Unlock();
}
// 画像描画オブジェクトのインスタンスを生成する。
std::shared_ptr<asd::TextureObject2D> obj = std::make_shared<asd::TextureObject2D>();
// 描画される画像を設定する。
obj->SetTexture(texture);
// 描画位置を指定する。
obj->SetPosition(asd::Vector2DF(50, 50));
// 画像描画オブジェクトのインスタンスをエンジンに追加する。
asd::Engine::AddObject2D(obj);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedを終了する。
asd::Engine::Terminate();
}
C#
/// <summary>
/// 空の画像を編集するサンプル
/// </summary>
class Texture_Basic
{
public string Description
{
get { return ""; }
}
public string Title
{
get { return ""; }
}
public string ClassName
{
get { return "Texture_Basic"; }
}
public unsafe void Run()
{
// Altseedを初期化する。
asd.Engine.Initialize("Texture_Basic", 640, 480, new asd.EngineOption());
// 画像を読み込む。
asd.Texture2D texture = asd.Engine.Graphics.CreateEmptyTexture2D(256, 256, asd.TextureFormat.R8G8B8A8_UNORM_SRGB);
// ロックして編集可能な状態にする。
asd.TextureLockInfomation lockInfo = new asd.TextureLockInfomation();
if (texture.Lock(lockInfo))
{
#if LANG_CS
// C#のみの高速処理
for (int y = 0; y < lockInfo.Size.Y; y++)
{
for (int x = 0; x < lockInfo.Size.X; x++)
{
var pixel = &((byte*)lockInfo.Pixels)[(x + y * lockInfo.Size.X) * lockInfo.Pitch];
pixel[0] = (byte)x;
pixel[1] = (byte)y;
pixel[2] = 0;
pixel[3] = 255;
}
}
#else
System.Console.WriteLine("実装されていません。");
#endif
// Unlockして編集結果を適用する。
texture.Unlock();
}
// 画像描画オブジェクトのインスタンスを生成する。
asd.TextureObject2D obj = new asd.TextureObject2D();
// 描画される画像を設定する。
obj.Texture = texture;
// 描画位置を指定する。
obj.Position = new asd.Vector2DF(50, 50);
// 画像描画オブジェクトのインスタンスをエンジンに追加する。
asd.Engine.AddObject2D(obj);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* 空の画像を編集するサンプル
*/
class Texture_Basic
{
public java.lang.String getDescription() {
return "";
}
public java.lang.String getTitle() {
return "";
}
public java.lang.String getClassName() {
return "Texture_Basic";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("Texture_Basic", 640, 480, new asd.EngineOption());
// 画像を読み込む。
asd.Texture2D texture = asd.Engine.getGraphics().CreateEmptyTexture2D(256, 256, asd.TextureFormat.R8G8B8A8_UNORM_SRGB);
// ロックして編集可能な状態にする。
asd.TextureLockInfomation lockInfo = new asd.TextureLockInfomation();
if(texture.Lock(lockInfo))
{
System.out.println("実装されていません。");
// Unlockして編集結果を適用する。
texture.Unlock();
}
// 画像描画オブジェクトのインスタンスを生成する。
asd.TextureObject2D obj = new asd.TextureObject2D();
// 描画される画像を設定する。
obj.setTexture(texture);
// 描画位置を指定する。
obj.setPosition(new asd.Vector2DF(50, 50));
// 画像描画オブジェクトのインスタンスをエンジンに追加する。
asd.Engine.AddObject2D(obj);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
読み込んだ画像の編集
C++
#include <Altseed.h>
/**
@brief 読み込まれた画像を編集するサンプル
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(u"Texture_Edit", 640, 480, asd::EngineOption());
// 画像を編集可能な状態で読み込む。
std::shared_ptr<asd::Texture2D> texture =
asd::Engine::GetGraphics()->CreateEditableTexture2D(u"Data/Texture/Picture1.png");
// 画像を編集する。
asd::TextureLockInfomation lockInfo;
// ロックして編集可能な状態にする。
if (texture->Lock(&lockInfo))
{
for (int32_t y = 0; y < lockInfo.GetSize().Y; y++)
{
for (int32_t x = 0; x < lockInfo.GetSize().X; x++)
{
auto pixel = &((uint8_t*) lockInfo.GetPixels())[(x + y * lockInfo.GetSize().X) * lockInfo.GetPitch()];
pixel[1] = y / 2;
}
}
// Unlockして編集結果を適用する。
texture->Unlock();
}
// 画像描画オブジェクトのインスタンスを生成する。
std::shared_ptr<asd::TextureObject2D> obj = std::make_shared<asd::TextureObject2D>();
// 描画される画像を設定する。
obj->SetTexture(texture);
// 描画位置を指定する。
obj->SetPosition(asd::Vector2DF(50, 50));
// 画像描画オブジェクトのインスタンスをエンジンに追加する。
asd::Engine::AddObject2D(obj);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// Altseedを更新する。
asd::Engine::Update();
}
// Altseedを終了する。
asd::Engine::Terminate();
}
C#
/// <summary>
/// 読み込まれた画像を編集するサンプル
/// </summary>
class Texture_Edit
{
public string Description
{
get { return ""; }
}
public string Title
{
get { return ""; }
}
public string ClassName
{
get { return "Texture_Edit"; }
}
public unsafe void Run()
{
// Altseedを初期化する。
asd.Engine.Initialize("Texture_Edit", 640, 480, new asd.EngineOption());
// 画像を編集可能な状態で読み込む。
asd.Texture2D texture = asd.Engine.Graphics.CreateEditableTexture2D("Data/Texture/Picture1.png");
// ロックして編集可能な状態にする。
asd.TextureLockInfomation lockInfo = new asd.TextureLockInfomation();
if (texture.Lock(lockInfo))
{
#if LANG_CS
// C#のみの高速処理
for (int y = 0; y < lockInfo.Size.Y; y++)
{
for (int x = 0; x < lockInfo.Size.X; x++)
{
var pixel = &((byte*)lockInfo.Pixels)[(x + y * lockInfo.Size.X) * lockInfo.Pitch];
pixel[1] = (byte)(y / 2);
}
}
#else
System.Console.WriteLine("実装されていません。");
#endif
// Unlockして編集結果を適用する。
texture.Unlock();
}
// 画像描画オブジェクトのインスタンスを生成する。
asd.TextureObject2D obj = new asd.TextureObject2D();
// 描画される画像を設定する。
obj.Texture = texture;
// 描画位置を指定する。
obj.Position = new asd.Vector2DF(50, 50);
// 画像描画オブジェクトのインスタンスをエンジンに追加する。
asd.Engine.AddObject2D(obj);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* 読み込まれた画像を編集するサンプル
*/
class Texture_Edit
{
public java.lang.String getDescription() {
return "";
}
public java.lang.String getTitle() {
return "";
}
public java.lang.String getClassName() {
return "Texture_Edit";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("Texture_Edit", 640, 480, new asd.EngineOption());
// 画像を編集可能な状態で読み込む。
asd.Texture2D texture = asd.Engine.getGraphics().CreateEditableTexture2D("Data/Texture/Picture1.png");
// ロックして編集可能な状態にする。
asd.TextureLockInfomation lockInfo = new asd.TextureLockInfomation();
if(texture.Lock(lockInfo))
{
System.out.println("実装されていません。");
// Unlockして編集結果を適用する。
texture.Unlock();
}
// 画像描画オブジェクトのインスタンスを生成する。
asd.TextureObject2D obj = new asd.TextureObject2D();
// 描画される画像を設定する。
obj.setTexture(texture);
// 描画位置を指定する。
obj.setPosition(new asd.Vector2DF(50, 50));
// 画像描画オブジェクトのインスタンスをエンジンに追加する。
asd.Engine.AddObject2D(obj);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}