国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 圖形圖像教程 > 詳細(xì)頁(yè)面

PhotoShop算法原理解析系列 - 像素化-碎片

PhotoShop算法原理解析系列 - 像素化-碎片

更新時(shí)間:2025-09-20 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)Adobe Photoshop,簡(jiǎn)稱“PS”,是由Adobe Systems開發(fā)和發(fā)行的圖像處理軟件。Photoshop主要處理以像素所構(gòu)成的數(shù)字圖像。使用其眾多的編修與繪圖工具,可以有效地進(jìn)行圖片...
Adobe Photoshop,簡(jiǎn)稱“PS”,是由Adobe Systems開發(fā)和發(fā)行的圖像處理軟件。Photoshop主要處理以像素所構(gòu)成的數(shù)字圖像。使用其眾多的編修與繪圖工具,可以有效地進(jìn)行圖片編輯工作。ps有很多功能,在圖像、圖形、文字、視頻、出版等各方面都有涉及。
接著上一篇文章的熱度,繼續(xù)講講一些稍微簡(jiǎn)單的算法吧。

本文來講講碎片算法,先貼幾個(gè)效果圖吧:

PhotoShop算法原理解析系列 - 像素化-碎片 PhotoShop算法原理解析系列 - 像素化-碎片 PhotoShop算法原理解析系列 - 像素化-碎片 PhotoShop算法原理解析系列 - 像素化-碎片

這是個(gè)破壞性的濾鏡,拿美女來說事是因?yàn)楦銏D像的人90%是男人,色色的男人。

關(guān)于碎片濾鏡的原理,網(wǎng)絡(luò)上可找到的資料為:將圖像創(chuàng)建四個(gè)相互偏移的副本,產(chǎn)生類似重影的效果。

就憑上述一句話,我們就可以動(dòng)手了。

分析:通過上述幾幅圖像的比較,特別是眼睛部位,可以看出處理的圖應(yīng)該看得出像是單眼變成了4個(gè)眼睛,因此,網(wǎng)絡(luò)上的說法可靠。

那么偏移的中心在哪里,偏移的數(shù)量又是多少呢,4個(gè)偏移,分別是往那些方向偏移呢,這些問題也很簡(jiǎn)單,可以那PS做驗(yàn)證:

具體步驟如下:打開一幅圖像,在圖像顏色比較單調(diào)的地方(比如上述美女的手臂處)填充一處2*2像素的紅色,然后復(fù)制圖層,對(duì)復(fù)制后的圖層進(jìn)行碎片濾鏡處理,并調(diào)整圖層透明度為50%,局部放大可得到如下圖像:

PhotoShop算法原理解析系列 - 像素化-碎片

如此效果,則可輕易得出結(jié)論:

偏移的中心就是以每個(gè)像素為中心,4個(gè)偏移分別以中心對(duì)稱,斜45度均勻圓周布置,水平和垂直偏移各45度,偏移量4個(gè)像素。

那么如何疊加的問題應(yīng)該可以猜測(cè),是取四次偏移后累加值的平均值。

針對(duì)如此思路,我寫出如下算法:

private void CmdFragment_Click(object sender, EventArgs e)
{    int X, Y, Z, XX, YY;    int Width, Height, Stride;    int Speed, Index;    int SumR, SumG, SumB;
    Bitmap Bmp = (Bitmap)Pic.Image;    if (Bmp.PixelFormat != PixelFormat.Format24bppRgb) throw new Exception("不支持的圖像格式.");

    Width = Bmp.Width; Height = Bmp.Height; Stride = (int)((Bmp.Width * 3 + 3) & 0XFFFFFFFC);    byte[] ImageData = new byte[Stride * Height];                                    // 用于保存圖像數(shù)據(jù),(處理前后的都為他)
    byte[] ImageDataC = new byte[Stride * Height];                                   // 用于保存克隆的圖像數(shù)據(jù)
    int[] OffsetX = new int[] { 4, -4, -4, 4 };                                      // 每個(gè)點(diǎn)的偏移量
    int[] OffsetY = new int[] { -4, -4, 4, 4 };    fixed (byte* P = &ImageData[0], CP = &ImageDataC[0])
    {        byte* DataP = P, DataCP = CP;
        BitmapData BmpData = new BitmapData();
        BmpData.Scan0 = (IntPtr)DataP;                                              //  設(shè)置為字節(jié)數(shù)組的的第一個(gè)元素在內(nèi)存中的地址
        BmpData.Stride = Stride;
        Bmp.LockBits(new Rectangle(0, 0, Bmp.Width, Bmp.Height), ImageLockMode.ReadWrite | ImageLockMode.UserInputBuffer, PixelFormat.Format24bppRgb, BmpData);

        Stopwatch Sw = new Stopwatch();                                             //  只獲取計(jì)算用時(shí)        Sw.Start();
        System.Buffer.BlockCopy(ImageData, 0, ImageDataC, 0, Stride * Height);     //  填充克隆數(shù)據(jù)        

        for (Y = 0; Y < Height; Y++)
        {
            Speed = Y * Stride;            for (X = 0; X < Width; X++)
            {
                SumB = 0; SumG = 0; SumR = 0;                for (Z = 0; Z < 4; Z++)                                           //  累積取樣點(diǎn)的取樣和                {
                    XX = X + OffsetX[Z];
                    YY = Y + OffsetY[Z];                    if (XX < 0)                                                    //   注意越界
                        XX = 0;                    else if (XX >= Width)
                        XX = Width - 1;                    if (YY < 0)
                        YY = 0;                    else if (YY >= Height)
                        YY = Height - 1;
                    Index = YY * Stride + XX * 3;
                    SumB += DataCP[Index];
                    SumG += DataCP[Index + 1];
                    SumR += DataCP[Index + 2];
                }

                DataP[Speed] = (byte)((SumB+2) >> 2);    //  求平均值(Sum+2)/4,為什么要+2,就為了四舍五入。比如如果計(jì)算結(jié)果為108.6,則取像素109更為合理     
                DataP[Speed + 1] = (byte)((SumG + 2) >> 2);
                DataP[Speed + 2] = (byte)((SumR + 2) >> 2);
                Speed += 3;                                                     //  跳往下一個(gè)像素            }
        }
        Sw.Stop();        this.Text = "計(jì)算用時(shí): " + Sw.ElapsedMilliseconds.ToString() + " ms";
        Bmp.UnlockBits(BmpData);                         //  必須先解鎖,否則Invalidate失敗     }
    Pic.Invalidate();}

  算法中,OffsetX 和 OffsetY分別為取樣點(diǎn)像素的偏移量。同樣,由于該濾鏡涉及到了領(lǐng)域操作,在處理前需要做像素備份,但這里沒有對(duì)備份數(shù)據(jù)進(jìn)行擴(kuò)展。因此,在內(nèi)部代碼里就需要對(duì)取樣點(diǎn)的坐標(biāo)進(jìn)行驗(yàn)證,看是否超過其范圍,如果超過范圍,通常在圖像濾鏡算法范圍內(nèi),有3種處理方式:

(1)超過了則認(rèn)為是其最接近的邊界值,即重復(fù)邊緣像素,這部分代碼即上述貼出的if ..... else if 部分。

(2)折回,可用如下代碼來描述:

while (XX >= Width)
    XX = XX - Width;while (XX < 0)
    XX = XX + Width;while (YY >= Height)
    YY = YY - Height;while (YY < 0)
    YY = YY + Height;

(3) 只計(jì)算在圖像范圍內(nèi)的像素: 

 if (XX >= 0 && XX < Width && YY >= 0 && YY < Height)
 {
       // 累加計(jì)算
 }

當(dāng)然這樣做,就必須用一個(gè)變量記錄下都做了多少次符合條件的計(jì)算。

有興趣的朋友可以自己改改代碼試一試。

上述代碼段中DataP[Speed] = (byte)((SumB+2) >> 2);要對(duì)SumB加2的原因是為了讓結(jié)果進(jìn)行四舍五入的操作,這樣才較為合理。

經(jīng)過測(cè)試,上述代碼和PS處理的效果100%的吻合。說明我們的猜測(cè)是完全正確的。

還可以對(duì)算法進(jìn)一步擴(kuò)展: 想的遠(yuǎn)一點(diǎn),為什么非的是4個(gè)重影呢,非得是45度角度呢,非得是4個(gè)像素的水平和垂直偏移呢。我給出下圖讓有興趣的讀者自己研發(fā)吧。

PhotoShop算法原理解析系列 - 像素化-碎片

圖中,角度為32度,半徑為10,碎片數(shù)為7,可產(chǎn)生類似下面的效果(可用我的Imageshop進(jìn)行驗(yàn)證):

PhotoShop算法原理解析系列 - 像素化-碎片 PhotoShop算法原理解析系列 - 像素化-碎片

更多PhotoShop算法原理解析系列 - 像素化-碎片相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!


Photoshop默認(rèn)保存的文件格式,可以保留所有有圖層、色版、通道、蒙版、路徑、未柵格化文字以及圖層樣式等。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        日韩久久久久久| 欧美一区日本一区韩国一区| 91在线无精精品入口| 国产精品美女一区二区在线观看| 国产一区二区不卡| 国产精品国产精品国产专区不片 | 日韩精品一区二区在线观看| 免费久久精品视频| 久久天天做天天爱综合色| 成人网在线播放| 一区二区成人在线| 91精品在线麻豆| 成人深夜在线观看| 亚洲精品高清视频在线观看| 欧美一卡二卡在线| av成人免费在线| 日韩av电影免费观看高清完整版 | 91麻豆高清视频| 香蕉久久夜色精品国产使用方法| 日韩西西人体444www| 国产成人免费视频一区| 亚洲主播在线播放| 欧美激情在线免费观看| 91精品国产aⅴ一区二区| 国产a精品视频| 午夜精品一区二区三区三上悠亚| 久久久久久免费毛片精品| 色综合天天做天天爱| 久久aⅴ国产欧美74aaa| 亚洲综合999| 国产三级一区二区三区| 717成人午夜免费福利电影| 色综合天天天天做夜夜夜夜做| 日韩高清不卡一区二区三区| 欧美国产日韩一二三区| 91麻豆精品久久久久蜜臀| 91麻豆123| 丁香另类激情小说| 激情五月播播久久久精品| 天堂精品中文字幕在线| 伊人色综合久久天天| 中文字幕在线不卡视频| 久久嫩草精品久久久精品一| 日韩欧美亚洲一区二区| 欧美三区在线观看| 色噜噜狠狠色综合欧洲selulu| 国产精品911| 国产乱妇无码大片在线观看| 麻豆精品一区二区| 欧美aaa在线| 奇米影视一区二区三区| 亚洲成人午夜电影| 亚洲www啪成人一区二区麻豆| 自拍偷拍国产精品| 国产精品久久国产精麻豆99网站| 久久综合色之久久综合| 日韩欧美aaaaaa| 精品国产一区久久| 日韩欧美三级在线| 欧美不卡一区二区三区四区| 日韩精品一区二区三区在线观看| 欧美一区欧美二区| 欧美va亚洲va在线观看蝴蝶网| 欧美一区欧美二区| 日韩欧美亚洲一区二区| 欧美α欧美αv大片| 精品成人a区在线观看| 久久久久久久一区| 国产精品久久久久久久久久久免费看| 久久久久国产精品人| 国产精品久久久久永久免费观看 | 亚洲精品日产精品乱码不卡| 一区二区三区成人| 天堂精品中文字幕在线| 久久精品噜噜噜成人88aⅴ | 不卡在线观看av| 色综合久久中文综合久久97| 色94色欧美sute亚洲线路二| 欧美久久久久中文字幕| 精品国产乱码久久久久久久久| 中文字幕av一区二区三区高| 亚洲欧洲制服丝袜| 美女视频一区二区| heyzo一本久久综合| 在线不卡a资源高清| 久久蜜桃av一区二区天堂| 亚洲三级电影网站| 欧美96一区二区免费视频| 成人黄页毛片网站| 欧美日本一道本| 国产亚洲综合色| 亚洲高清一区二区三区| 国产精品一区二区视频| 欧美性欧美巨大黑白大战| 久久综合狠狠综合久久综合88 | 久久综合中文字幕| 亚洲你懂的在线视频| 奇米色777欧美一区二区| 成人福利在线看| 欧美一区二区女人| 亚洲欧美日韩电影| 国产黄色91视频| 91精品国产综合久久精品麻豆| 欧美国产欧美综合| 日韩电影在线观看一区| 99久久久久久99| 久久蜜桃av一区二区天堂| 一区二区三区四区国产精品| 国产精品一区二区91| 日韩一区二区三区电影在线观看| 一区二区三区在线视频观看| 粉嫩绯色av一区二区在线观看| 日韩欧美国产麻豆| 夜夜嗨av一区二区三区中文字幕 | 99久久久国产精品免费蜜臀| 欧美一区二区在线不卡| 亚洲你懂的在线视频| 国产精品1区二区.| 精品欧美久久久| 日本午夜精品视频在线观看| 91福利资源站| 日韩毛片一二三区| 成人福利电影精品一区二区在线观看| 日韩美女一区二区三区| 亚洲国产精品影院| 欧美色图在线观看| 亚洲欧美偷拍卡通变态| 99久久综合精品| 自拍偷自拍亚洲精品播放| 成人午夜私人影院| 国产女同互慰高潮91漫画| 国产综合久久久久影院| 欧美xxxxxxxxx| 九九视频精品免费| 精品91自产拍在线观看一区| 喷白浆一区二区| 精品黑人一区二区三区久久| 久久精品免费观看| 2014亚洲片线观看视频免费| 国产精品一区二区久久不卡| 国产无人区一区二区三区| 国产精品亚洲第一| 国产精品日日摸夜夜摸av| 不卡av电影在线播放| 国产精品久久久久精k8| 欧美在线观看一二区| 午夜免费久久看| 精品不卡在线视频| 成人国产亚洲欧美成人综合网| 综合激情成人伊人| 欧美日本视频在线| 国产制服丝袜一区| 国产精品天美传媒| 一本色道a无线码一区v| 亚洲影院久久精品| 日韩精品专区在线影院观看| 国产91对白在线观看九色| 亚洲人成网站影音先锋播放| 欧美日韩五月天| 久久99精品国产.久久久久久| 久久午夜电影网| 91福利国产成人精品照片| 美女视频黄频大全不卡视频在线播放| 精品国产91九色蝌蚪| caoporm超碰国产精品| 香蕉成人伊视频在线观看| 久久精品一区八戒影视| 欧美中文字幕一区二区三区 | 成人白浆超碰人人人人| 亚洲大尺度视频在线观看| 欧美tk—视频vk| 在线亚洲人成电影网站色www| 日韩在线a电影| 亚洲视频狠狠干| 亚洲精品一区二区三区蜜桃下载| 91丨porny丨中文| 狠狠色丁香久久婷婷综合_中| 亚洲一区二区精品3399| 国产无遮挡一区二区三区毛片日本| 欧美日韩精品系列| 99综合影院在线| 久久99精品国产91久久来源 | 亚洲美女视频一区| 日韩亚洲欧美在线| 亚洲少妇屁股交4| 精品理论电影在线| 欧美成人vps| 欧美在线你懂的| 国产精品久久久久精k8| 欧美丝袜丝交足nylons图片| 国产精品羞羞答答xxdd| 日韩电影一区二区三区| 一级女性全黄久久生活片免费| 欧美成人福利视频| 欧美老肥妇做.爰bbww| 色综合天天综合在线视频| 国产成人在线视频免费播放| 日韩有码一区二区三区| 亚洲午夜电影网| 亚洲超碰精品一区二区|