国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

了解Hibernate的FlushMode.NEVER

2024-07-21 02:28:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  很多圖片處理的算法從原理上講其實(shí)非常簡(jiǎn)單,難點(diǎn)往往在如何去寫(xiě)算法實(shí)現(xiàn)它,更加難的就是如何去優(yōu)化實(shí)現(xiàn)的算法。雖說(shuō)我一向認(rèn)為程序員的效率比程序的效率更重要,但為了等處理一張自己拍攝的數(shù)碼照片,溜出去買(mǎi)杯奶茶順便再買(mǎi)張彩票回來(lái)發(fā)現(xiàn)還沒(méi)算好,無(wú)論如何都是不能忍受的。

  馬賽克算法很簡(jiǎn)單,說(shuō)白了就是把一張圖片分割成若干個(gè)val * val像素的小區(qū)塊(可能在邊緣有零星的小塊,但不影響整體算法),每個(gè)小區(qū)塊的顏色都是相同的。為了方便起見(jiàn),我們不妨讓這個(gè)顏色就用該區(qū)域最左上角的那個(gè)點(diǎn)的顏色。當(dāng)然還可以有其他方法,比如取區(qū)塊中間點(diǎn)的顏色,或區(qū)塊中隨機(jī)點(diǎn)的顏色作代表等等。 下面的示意圖就是取val=2的結(jié)果。

  原圖像素

abcdefg
hijklmn
opqrstu
vwxyz01
2345678

  馬賽克處理后:

aacceeg
aacceeg
ooqqssu
ooqqssu
2244668

  原理就是那么簡(jiǎn)單。具體實(shí)現(xiàn)就看各人的思維習(xí)慣了。我的想法是:

  當(dāng)y(當(dāng)前高度)是val的整數(shù)倍時(shí):

  掃描當(dāng)前行中的每一點(diǎn)x,如果x也是val的整數(shù)倍,記錄下當(dāng)前x,y的顏色值;如果x不是val的整數(shù)倍,則沿用最近一次被記錄的顏色值。

  當(dāng)y不是val的整數(shù)倍:

  很簡(jiǎn)單,直接復(fù)制上一行。

  簡(jiǎn)單的說(shuō)就是以線帶面,最終實(shí)現(xiàn)讓大家都看不清楚

  下面就是源代碼。寫(xiě)算法不是我的強(qiáng)項(xiàng),不過(guò)偶爾勉為其難的寫(xiě)個(gè)可以跑跑的不求甚解版還是可以做到的,不指望可以幫到你,只希望沒(méi)有誤導(dǎo)你。

public static bitmap kimosaic(bitmap b, int val)
{
 if (b.equals(null))
 {
  return null;
 }

 int w = b.width;
 int h = b.height;

 int stdr, stdg, stdb;

 stdr = 0;
 stdg = 0;
 stdb = 0;

 bitmapdata srcdata = b.lockbits(new rectangle(0, 0, w, h), imagelockmode.readwrite, pixelformat.format24bpprgb);

 unsafe
 {
  byte* p = (byte*)srcdata.scan0.topointer();
  for (int y = 0; y < h; y++)
  {
   for (int x = 0; x < w; x++)
   {
    if (y % val == 0)
    {
     if (x % val == 0)
     {
      stdr = p[2]; stdg = p[1]; stdb = p[0];
     }
     else
     {
      p[0] = (byte)stdb;
      p[1] = (byte)stdg;
      p[2] = (byte)stdr;
     }
    }
    else
    {
     // 復(fù)制上一行
     byte * ptemp = p - srcdata.stride;

     p[0] = (byte)ptemp[0];
     p[1] = (byte)ptemp[1];
     p[2] = (byte)ptemp[2];
    }
    p += 3;
   } // end of x
   p += srcdata.stride - w * 3;
  } // end of y
  b.unlockbits(srcdata);
 }
 return b;
}

最大的網(wǎng)站源碼資源下載站,

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黑河市| 景德镇市| 长乐市| 九江市| 平凉市| 安龙县| 浠水县| 陆河县| 泗水县| 定结县| 上蔡县| 长丰县| 潼南县| 昌平区| 济阳县| 新野县| 固安县| 汪清县| 子洲县| 曲水县| 石泉县| 吉首市| 彰化县| 沙田区| 井冈山市| 铜山县| 法库县| 抚州市| 大洼县| 藁城市| 手机| 定兴县| 永胜县| 浦城县| 伊川县| 洪湖市| 屏东县| 两当县| 勐海县| 金坛市| 栖霞市|