UI野路子 --- 【四】Logo图标

qiqiminmin UID.638527
2015-12-31 发表

本帖最后由 qiqiminmin 于 2015-12-31 22:09 编辑

我这里并不是说如果制作Logo图标,反正您根据您的喜好生成就行了。因为我只是一个工程师。不会去设计多么复杂的图标。大体就是一个标准:对称。但问题来了。
想发布windows 10的软件,Logo图标各式各样,有 71x71,310x310,150x150的,还有各种scale, 看的眼睛就花,怎么办呢。?

( ̄▽ ̄)",答案也许很简单,自己做工具吧。我刚工作时,有幸在一些台湾工程师和新加坡工程师下工作。他们接受的教育方式似乎都一样(和我们还是有很大的不同),一个项目下来,他们第一件事就是用vc++生成各式各样的工具,什么生成字库的啊,自己的类生成器,需求文档生成脚本。总之,其实vs studio,是您手里最强大的工具,不多说了。希望爱好编程的人,每个人都尽量用C#,javascript来编一些方便自己的工具。我现在介绍个生成各种分辨率的小工具吧。

早在wp7开始,我就已经使用SVG来转自己的Logo图标。优点就是,各个分辨率,非常清楚,但是每次都是自己用其他软件转大小,很烦。直到windows 8时代,当winjs推出,( ̄▽ ̄)", 那不是可以用winjs很方便的生成各个分辨率吧。因为winjs可以非常好的生成矢量图片。

思路
【1】打开文件 => 【2】用image打开图像 【3】在canvas里缩放 【4】将canvas转成 base64 【5】将base64保存成 png

[1] 把svg文件通过image,canvas转成 base64.. 如果还在单机时代,可以忽略什么是base64,但是一旦进入网络时代,一定要熟练 json, base64. 微软那个测年龄的网站就是利用base64的图像。
[mw_shl_code=csharp,true]

var tmpImg = new Image();
tmpImg.onload = function (img){
var width = ***;
var canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = width;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, width, width);

var dataURL = canvas.toDataURL("image/png");

var byteCharacters = dataURL.replace("data:image/png;base64,", "");};
tmpImg.src = "*.svg";[/mw_shl_code]




[2] base64 转成 blob
[mw_shl_code=csharp,true]function b64toBlob(b64Data, c, s) {
var contentType = c || '';
var sliceSize = s || 512;

var byteCharacters = atob(b64Data);
var byteArrays = [];

for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);

var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers = slice.charCodeAt(i);
}

var byteArray = new Uint8Array(byteNumbers);

byteArrays.push(byteArray);
}

var blob = new Blob(byteArrays, { type: contentType });
return blob;
}
[/mw_shl_code]


[3] Blob保存成文件
[mw_shl_code=csharp,true]function writeBlobToFile(blob,folder, filename) {
var deferred = $q.defer();


function Error(e) {
deferred.reject("");
}
// Open the picker to create a file to save the blob
folder.createFileAsync(filename, Windows.Storage.CreationCollisionOption.generateUniqueName).then(function (file) {
// Open the returned file in order to copy the data
file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(function (output) {

// Get the IInputStream stream from the blob object
var input = blob.msDetachStream();

// Copy the stream from the blob to the File stream
Windows.Storage.Streams.RandomAccessStream.copyAsync(input, output).then(function () {
output.flushAsync().done(function () {
input.close();
output.close();
WinJS.log && WinJS.log("File '" + file.name + "' saved successfully to the Pictures Library!", "sample", "status");


deferred.resolve("ok");
}, Error);
}, Error);
}, Error);
}, Error);

return deferred.promise;
}[/mw_shl_code]

定义一个imgs: [284, 142, 72, 107, 89,600, 300, 150, 225, 188,1240, 620, 310, 465, 388,176, 88, 44, 66, 55,256, 48, 24, 16,200, 100, 75, 63, 50]
全部过一遍。

***附件停止解析***

***附件停止解析***

结果,,( ̄▽ ̄)",一次生成这么多,真舒服。是windows 10的,有兴趣的人多的话,我可以做成一个应用。。。。 jpg, png, bmp,svg都支持。
而且各种命名全部由 诸如 square71 square 150 , squre310, budge..等等,所有的都有。
***附件停止解析***


***附件停止解析***

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
tingtongku UID.992431
2015-12-31 回复

看样子成品都有了,appx和ps脚本打包发上来吧。因为我想做个程序练手

qiqiminmin UID.638527
2015-12-31 回复

本帖最后由 qiqiminmin 于 2015-12-31 13:08 编辑

Quotetingtongku 发表于 2015-12-31 13:02
看样子成品都有了,appx和ps脚本打包发上来吧。因为我想做个程序练手


我自己一直用 用了有一两年了。比ps脚本快 因为是程序 命名也可以自己编。我这是晚上了 明天起来有空发

tingtongku UID.992431
2015-12-31 回复

Quoteqiqiminmin 发表于 2015-12-31 13:07
我自己一直用 用了有一两年了。比ps脚本快 因为是程序 命名也可以自己编。我这是晚上了 明天起来有空发 ...


好吧,等你睡醒再发。

我顺便可以去Chanel 9看看UWP开发教程,先从记事本入手吧

h82****652 UID.880817
2015-12-31 回复

github上有个老外做了一个win2d显示svg的。
我记得陈仁松也是做了一个。
嘛,反正楼主这个也有好处,毕竟直接读png要比svg快。

另外建议楼主生成的图片用scale-XXX做后缀,这样导入工程就可以省去重命名这一步了^-^。

tmp00000 UID.995403
2015-12-31 回复

用xaml做的话,FontIcon和Border做出造型,缩放用ViewBox,保存直接抄Sdk里面的示例。

qiqiminmin UID.638527
2015-12-31 回复

Quotetmp00000 发表于 2015-12-31 17:46
用xaml做的话,FontIcon和Border做出造型,缩放用ViewBox,保存直接抄Sdk里面的示例。 ...


呵呵 我这个不是画logo,是转logo,您只看了标题吧 去问问您认识的美工吧 他们用什么画。

tmp00000 UID.995403
2015-12-31 回复

Quoteqiqiminmin 发表于 2015-12-31 19:38
呵呵 我这个不是画logo,是转logo,您只看了标题吧 去问问您认识的美工吧 他们用什么画。 ...


我认识的美工大多停留在位图时代,几乎人手一本旧版ps教程。少数人用3dsmax。你用svg。

qiqiminmin UID.638527
2015-12-31 回复

本帖最后由 qiqiminmin 于 2015-12-31 20:16 编辑

Quotetmp00000 发表于 2015-12-31 19:51
我认识的美工大多停留在位图时代,几乎人手一本旧版ps教程。少数人用3dsmax。你用svg。 ...


真的? 你真没听说过什么叫AI,哈哈。您还没搞清楚什么是SVG把,不要想什么iconFont了,那东西都是现成的。

大多矢量画图软件都能svg输出,记住svg只是个载体。 我这个帖子是说,方便转而已。 真的,o(^▽^)o,我待过的公司,会用ps的,一般叫做美图爱好者。基本功好的美工,都很不错的,平面设计,效果图都靠他们的。UI工程师,你不能说是编程的就不用ps而用小画家(paint)。

tmp00000 UID.995403
2015-12-31 回复

Quoteqiqiminmin 发表于 2015-12-31 19:57
真的? 你真没听说过什么叫AI,哈哈。您还没搞清楚什么是SVG把,不要想什么iconFont了,那东西都是现成的 ...


我现在对美工的认知范围局限于学校和网络社区。Adobe Illustrator在我们学校并不普及,甚至8层高的校图书馆里都没太多关于它的书。

qiqiminmin UID.638527
2015-12-31 回复

本帖最后由 qiqiminmin 于 2015-12-31 20:37 编辑

Quote***链接停止解析***
我现在对美工的认知范围局限于学校和网络社区。Adobe Illustrator在我们学校并不普及,甚至8层高的校图书 ...


( ̄▽ ̄)"。。。。。。。。。

所以您更应该看清楚再说。 我这里说的主题思想 :转svg图

用xaml保存element为图片,转 jpg,png, 那东西,范例都有吧。我还是特意写一些官方没有东西,您还特意只看标题回复。

tmp00000 UID.995403
2015-12-31 回复

本帖最后由 tmp00000 于 2015-12-31 20:49 编辑

Quoteqiqiminmin 发表于 2015-12-31 19:57
真的? 你真没听说过什么叫AI,哈哈。您还没搞清楚什么是SVG把,不要想什么iconFont了,那东西都是现成的 ...


我没说你的帖子有问题。我只是在提供可以不转svg的方式。

qiqiminmin UID.638527
2015-12-31 回复

本帖最后由 qiqiminmin 于 2015-12-31 20:57 编辑

Quote***链接停止解析***
我没说你的帖子有问题。我只是在提供可以不转svg的方式。


( ̄▽ ̄)", 嗯,了解了解, 我也没说您说了 “帖子有问题”,我说的是你把我的帖子理解错了,你没理解我为什么要转svg图,转了做什么用?。 我一般在你这种情况,会弄一种比别人更简洁,更方便,或者更实用的方法,而不是放弃svg. 比如说你觉的 svg2win2d更好,把范例一展示,代码摆一摆,大家就会想,还是用另一个好。

qiqiminmin UID.638527
2015-12-31 回复

Quote***链接停止解析***
看样子成品都有了,appx和ps脚本打包发上来吧。因为我想做个程序练手


程序主题 打包超过2兆了,贴了主要的。。是html5+js开发的,如果您是偏xaml+C#,可以先看channel9。

tingtongku UID.992431
2015-12-31 回复

Quoteqiqiminmin 发表于 2015-12-31 21:18
程序主题 打包超过2兆了,贴了主要的。。是html5+js开发的,如果您是偏xaml+C#,可以先看channel9。

...


表示一点也不懂,,,还有手机没电了等会补充

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报