在下面的代码中,我试图绘制两条线:一条具有子像素宽度(0.5),另一条具有1px宽度:
var img = new Bitmap(256, 256);
Graphics graphics = Graphics.FromImage(img);
graphics.SmoothingMode = SmoothingMode.AntiAlias;
// Draw a subpixel line (0.5 width)
graphics.DrawLine(new Pen(Color.Red, (float)0.5), 0, 100, 255, 110);
// Draw a single pixel line (1 width)
graphics.DrawLine(new Pen(Color.Red, (float)1), 0, 110, 255, 120);
img.Save(@"c:\temp\test.png", ImageFormat.Png);
graphics.Dispose();
img.Dispose();
Run Code Online (Sandbox Code Playgroud)
但是,在生成的图像中,两条线显示相同的宽度:

有没有办法让顶线出现亚像素(0.5px)?
这是一个Xcode 6 Swift项目.在模拟器中选择iPhone 5或5s时,应用程序将以全屏高度启动.但是,在实际设备(iPhone 5s)上运行应用程序时,屏幕的高度仅为iPhone 4(即屏幕顶部和底部出现黑条).
奇怪的是,我从另一个测试项目重新创建了这个项目 - 在原始项目中我没有遇到这个问题.
我已经在每个故事板xml文件上进行了文本比较,两者大多相同.我还看了每个的Build Settings,看不出任何明显的差异.最后,每个"Images.xcassets"目录中指定的json文件都是相同的.
我正在使用C++库,需要从UTF-8代码点创建一个unsigned char.例如,如果代码点是十进制610('拉丁字母小资本G'),我将如何在C++中创建它?
我javascript,我可以做以下事情:
var temp = String.fromCharCode(610);
console.log(temp); // Outputs a small 'G' (correct)
var codePoint = temp.charCodeAt(0);
console.log(codePoint); // Outputs 610 (correct)
Run Code Online (Sandbox Code Playgroud)
在C++中尝试过:
unsigned char temp = (unsigned char)610;
// compiles, but
Debug::WriteLine((int)temp); // outputs 98 (??)
Run Code Online (Sandbox Code Playgroud)
请提供C++中的代码示例,其执行与上面的javascript示例相同.
环境是在托管C++中,但我想避免使用CLR类型,因为我正在与第三方库连接.