小编mon*_*ero的帖子

使用PIL将PNG32转换为PNG8,同时保持透明度

我想用Python图像库将PNG32图像(透明度)转换为PNG8.到目前为止,我已成功转换为具有扎实背景的PNG8.

以下是我正在做的事情:

from PIL import Image
im = Image.open("logo_256.png")
im = im.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=255)
im.save("logo_py.png", colors=255)
Run Code Online (Sandbox Code Playgroud)

python png python-imaging-library

7
推荐指数
1
解决办法
5874
查看次数

在Cocoa应用程序中处理Cmd-Q(以编程方式处理菜单项'退出应用程序')

我创建了一个只有一个窗口的游戏应用程序.应用程序是在没有.xib文件帮助的情况下创建的,如下所述:如何创建GUI并以编程方式响应Cocoa事件?

现在,我可以在应用程序的主循环中捕获标准的"键上/下"事件:

 NSEvent* event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES];
 NSEventType eventType = [event type];
 if (eventType == NSKeyDown)
 {
    my_uint32 keycode = [event keyCode];
    input::doSomeWork(keycode);
 }
Run Code Online (Sandbox Code Playgroud)

此外,当使用以下代码在窗口上按下红叉时,我可以正确退出应用程序:

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
    g_myEngine.stop();
    return NSTerminateNow;
}
Run Code Online (Sandbox Code Playgroud)

但我该怎么做:

a)选择菜单项"退出MyApplicationName"时捕获?

b)处理Cmd-Q事件?


更新:我已添加此代码:

id menubar = [[NSMenu new] autorelease];
id appMenuItem = [[NSMenuItem new] autorelease];
[menubar addItem:appMenuItem];
[NSApp setMainMenu:menubar];
id appMenu = [[NSMenu new] autorelease];
id appName = [[NSProcessInfo processInfo] processName];
id quitTitle = [@"Quit " stringByAppendingString:appName];
id quitMenuItem = [[[NSMenuItem …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c

7
推荐指数
1
解决办法
3749
查看次数

在Haxe中清除阵列的正确方法是什么?

在Haxe中清除阵列最有效的方法是什么?目前我只是为变量分配一个空数组.

我在互联网上发现了这个:

public static function clear(arr:Array<Dynamic>) {
    #if cpp
    arr.splice(0, arr.length);
    #else
    untyped arr.length = 0;
    #end
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?我关注两个目标,JS和CPP.

haxe

6
推荐指数
1
解决办法
699
查看次数

获取Haxe宏中的对象类型

我想在宏中获取一个对象的类,以便我可以访问它的静态变量:

// autoBuild macro adds static field "id_ : Int" to all subclasses
class Base {

}

class Child1 extends Base {
  public function new() {}
}

class Child2 extends Base {
  public function new() {}
}

class Container {
  public function addChild(index: Int, object: Base) {}

  macro function add(object: ???) {
    // find out class of on object
    // ???
    // var id = class.id_;
    this.addChild(id, object);
  }
}
Run Code Online (Sandbox Code Playgroud)

所需用法:

var c = new Container();
c.add(new Child1());
c.add(new Child2());
Run Code Online (Sandbox Code Playgroud)

macros haxe

5
推荐指数
1
解决办法
191
查看次数

标签 统计

haxe ×2

cocoa ×1

macos ×1

macros ×1

objective-c ×1

png ×1

python ×1

python-imaging-library ×1