【问题标题】:Is it possible to pixelate an image in appcelerator Titanium?是否可以在 appcelerator Titanium 中对图像进行像素化?
【发布时间】:2015-01-27 07:30:31
【问题描述】:

我正在使用 Appcelerator Titanium 编写一个 Android 和 IOS 应用程序,但我找不到像素化图像的方法。我正在编写的应用程序需要这样做:使用用户给定的参数对给定图像进行像素化(数字越大,像素越大)。我已经找到了一种使用 Xcode for IOS 和 Android SDK for Android 的方法,但如果可能的话,我想在 Titanium 中这样做以避免两次编写整个应用程序,一次用于 Android,另一次用于 IOS。

有办法吗?

谢谢。

【问题讨论】:

    标签: android ios image effects


    【解决方案1】:

    如果您在 iOS 和 Android 中都有原生方式,则应该将它们包装为原生模块,然后将它们包含在项目中。

    在社区 wiki 上按照此指南进行操作 -> https://wiki.appcelerator.org/display/guides2/Creating+a+New+Titanium+Module

    然后您可以编写一个包装模块并返回已处理对象的函数。例如。

    var processImage = function() {
        if (Titanium.Platform.name == 'android') {
            // Android stuff
    
            var imageProcess = require('ti.imageProcess');
    
            return imageProcess.doImage('/voo/bar', /*more options */)
        } else {
            // etc
        }
    };
    

    您可以使用 webView 并使用 JS 库或 canvas 对象来像素化图像,而不是编写和维护两个模块。

    可以在这里找到一个 JS 画布解决方案:

    https://stackoverflow.com/a/19129822/2132015

    【讨论】:

    • 非常感谢。所以,如果我理解的话,我必须在IOS和Android中分别开发用于图像处理的代码,然后编写一个函数来调用这些模块函数,一个或另一个取决于系统,不是吗?。
    • 正是如此。您可以为原生版本找到一个预先存在的图像处理模块,然后 Titanium 模块将包装这些方法,获取一个图像对象进行处理。另一种选择是使用 javascript 并在 webView 中操作图像,这也可以很好地工作。
    猜你喜欢
    • 2016-05-12
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多